如何将 ID 从 Laravel Blade 视图传递给模型

How to pass ID from Laravel Blade view to Model

问题 我正在尝试将 $id 从 blade 视图 @foreach 循环传递到 Model 以便我可以 return 所有与此特定 page 关联的卡片。

想法是,您可以单击所有任务,它会转到 http://kanban.test/team/kanban/1/show-all 并显示所有任务。

当你点击 pages 时,那些就像标签过滤器一样,带你到 http://kanban.test/team/kanban/1/1/show

当我手动设置 page id = 1 时,它确实有效。当我尝试传递 ID 时,它没有给出任何错误,但什么也没有显示。

手动设置ID

// Column.php Model
public function tasksOnPage(){
        return $this->cards()->where('page_id',1);
    }

// Blade View
@foreach ($kanban->columns as $column )

   @foreach ($column->tasksOnPage as $card)
      @include('kanbans.show-card') 
   @endforeach

@endforeach

正在尝试传递 id

当我执行 {{$page->id}} 时,它会在每一列中显示 1 的正确 ID。

// Column.php Model
public function tasksOnPage($id){
        return $this->cards()->where('page_id',$id);
    }

// Blade View
@foreach ($kanban->columns as $column )

   @foreach ($column->tasksOnPage($page->id) as $card)
       @include('kanbans.show-card') 
   @endforeach

@endforeach

如果我遇到一些错误,那会很有帮助 >.< 。关于如何调试它以找出可能是什么问题的任何建议?由于页面加载正常,没有错误?

试试这个解决方案

// Blade View
@foreach ($kanban->columns as $column )

   @foreach ($column->cards()->where('page_id', $page->id) as $card)
       @include('kanbans.show-card') 
   @endforeach

@endforeach

我决定把它做成一个 livewire 组件,我可以通过这种方式传递 ID。

@foreach ($kanbans as $kanban )
   @livewire('kanbans.show-sidebar-kanban', ['kanban'=>$kanban], key($kanban->id))
@endforeach

这个关于嵌套的视频帮了大忙 :)

对于可能也被困在这个问题上的任何人

https://laravel-livewire.com/screencasts/nesting