我尝试制作搜索功能,所以我这样做:
public function search(Request $request)
{
$query = $request->query('q');
$posts = DB::table('posts')->where('title', 'LIKE', '%'.$query.'%')->get();
return view('admin.dashboard.search')->with('users',$users)->with('posts',$posts);
}
但是当我尝试获取结果时,我遇到了一些错误:
未定义属性:stdClass :: $ user(查看: E:\ laragon \ WWW \博客\资源\视图\管理员\仪表板\ search.blade.php)
这一行是错误的:
<td><?php echo e($post->user->name); ?></td>
那我该如何解决呢?
答案 0 :(得分:2)
您必须在搜索查询中急切加载用户,如下所示:
$posts = App\Post::with('user')
->where('title', 'LIKE', '%'.$query.'%')
->get();
答案 1 :(得分:1)
您需要先在查询中设置with['user']
!
$posts = App\Post::with('user')->where('title', 'LIKE', '%'.$query.'%')->get();
然后你可以在你的视图中得到它:
<td>{{ $post->user->name ? $post->user->name : 'No User Found' }}/td>
希望这能帮到你!
答案 2 :(得分:0)
您可以执行类似
的操作<td>{{ $post->user->name ? $post->user->name : 'No User Found' }}/td>
这应该有效