首页 > 解决方案 > Livewire:如何获取新创建行的 ID?

问题描述

我用livewire创建了一个按钮,当它被点击时。它将在数据库中生成一个新的看板。

在此处输入图像描述

<div>
    <form>
        <button wire:click="addKanban" class="h-8 w-8 rounded bg-blueGray-100  text-lg text-gray-900 focus:outline-none hover:text-white hover:bg-blue-500 ">
            <i class="bi bi-plus"></i>
        </button>
    </form>
</div>

livewire php file这是功能

public function addKanban ()
    {
        $record = $this->validate([
            'team_id' => 'required',
            'icon' => 'required',
            'color' => 'required',
            'title' => 'required',
            'order' => 'required',
            'status' => 'required'
        ]);

        Kanban::create($record);

        $this->resetInputFields();
        
        return redirect()->route('kanbans.show-all',['kanban'=>$this->$kanban->id]);
    }

一旦它在数据库中创建了行,我希望它重定向到显示该看板的页面。我找到了有关如何操作的文档https://laravel.com/docs/8.x/redirects,但我似乎无法获得新的看板id

这应该像return redirect()->route('kanbans.show-all',['kanban'=>'new kanban id']);

然而,我得到的最接近的是['kanban'=>$this->id],这会返回 livewire 创建的随机字符串 ID,它会转到team/kanban/a69J5LmObUjcKbmJYPxE/show-all而不是team/kanban/1/show-all

非常感谢任何帮助或见解:)

标签: laravellaravel-livewire

解决方案


public function addKanban ()
{
        $record = $this->validate([
            'team_id' => 'required',
            'icon' => 'required',
            'color' => 'required',
            'title' => 'required',
            'order' => 'required',
            'status' => 'required'
        ]);

        $modelCreated = Kanban::create($record);

        $this->resetInputFields();
        
        return redirect()->route('kanbans.show-all',['kanban'=>$modelCreated->id]);
    }

就是这样,记得通过路由模型绑定的方式正确管理这个,希望对你有帮助


推荐阅读