laravel - 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
非常感谢任何帮助或见解:)
解决方案
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]);
}
就是这样,记得通过路由模型绑定的方式正确管理这个,希望对你有帮助