如何从模型绑定显示方法检索特定的列数据?

时间:2019-07-09 12:19:26

标签: laravel

我正在建立一个新项目,并希望从传递的模型绑定控制器show方法中检索数据,但show view中的输出为空

型号:

class Content extends Model
{
    protected $fillable = ['title','body'];
}

这是我的控制器:

public function show(Content $content)
{
return view('content.show',compact('content'));
}

这是我的索引:

@foreach ($content as $item)
<td>
<a class="btn btn-primary" href="{{ route('Content.show',$item) }}">View</a> 
</td>
@endforeach

这是show方法,结果为空:

<div class="card-header">
{{ $content->title }}
</div>
<div class="card-body">
{{ $content->body }}
</div>
<div class="card-footer">
{{ $content->created_at }}
/div>

我希望在show方法中产生结果,因为一切都很好,但是我的问题不在哪里吗?

  

已更新:

dd($content)

3 个答案:

答案 0 :(得分:0)

因为您尝试获取现在为$ item的$ content :)

  <div class="card-header">
    {{ $item->title }}
    </div>
    <div class="card-body">
    {{ $item->body }}
    </div>
    <div class="card-footer">
    {{ $item->created_at }}
    </div>

答案 1 :(得分:0)

我找到了答案

我将路由资源从resource('Content','ContentController')更改为

resource('content','ContentController')并且问题已解决!

我不知道为什么!

答案 2 :(得分:0)

//used to show a list, like what you are trying to do
public function index()
{
  $contents = Content::get();
return view('content.index',compact('contents'));
}
//used to show one item
public function show(Content $content)
{
return view('content.show',compact('content'));
}

如果您要遍历多个内容,那么您拥有的视图内容将起作用,否则,您会想要

    {{ $content->title }}
    </div>
    <div class="card-body">
    {{ $content->body }}
    </div>
    <div class="card-footer">
    {{ $content->created_at }}
    </div>```