3 回答
TA贡献1816条经验 获得超4个赞
你没有正确定义你的关系。App\User应该在模型中定义:
public function pages()
{
// have to specify the key name is author, not user_id
return $this->hasMany("App\Page", "author");
}
然后在App\Page模型中你有这个:
public function pageauthor()
{
// have to specify the key name is author, not user_id
return $this->belongsTo("App\User", "author");
}
然后在您的 Blade 模板中,您只需引用$page->author->name:
@foreach ($pages as $page)
<tr>
<th>{{ $page->id }}</th>
<th>{{ $page->title }}</th>
<th>{{ $page->pageauthor->name }}</th>
...
TA贡献1866条经验 获得超5个赞
像这样的东西应该可以帮助你
您的控制器
$pages = \App\page::all();
foreach ($pages as $page) {
$user = \App\user::find($page->author)->pluck('name');
if(isset($user)){
$page['user_name'] = $user->name;
} else {
$page['user_name'] = 'N/A';
}
}
return view('admin.pages', compact('pages'));
你的看法
@foreach ($pages as $page)
<tr>
<th>{{ $page->id }}</th>
<th>{{ $page->title }}</th>
<th>{{ $page->user_name) }}</th>
@if($page->status = 'ACTIVE')
<th><span class="label label-success">{{ $page->status }}
</span></th>
@elseif($page->status = 'DRAFT')
<th><span class="label label-warning">{{ $page->status }}
</span></th>
@endif
<th>{{ $page->Actions }}</th>
</tr>
@endforeach
代码与您当前的代码有何不同
1) 它在主集合本身 ($pages) 中写入用户名,从而让您不必担心在视图中只循环遍历一个集合
2)它使用laravel,find()因为页面只能有作者(我假设)(注意:find()基于您的主键工作,在这种情况下,它将搜索最常见的主键列id列)
3)它使用 pluck()
- 3 回答
- 0 关注
- 169 浏览
添加回答
举报