当在 Laravel 中只找到一条记录时如何防止未定义 属性
how to prevent undefined property when only one record found in Laravel
我想做一个搜索功能,所以我这样做了:
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);
}
但是当我尝试获取结果时,我遇到了一些这样的错误:
Undefined property: stdClass::$user (View:
E:\laragon\www\blog\resources\views\admin\dashboard\search.blade.php)
这是这一行的错误:
<td><?php echo e($post->user->name); ?></td>
那我该如何解决呢?
你可以这样做
<td>{{ $post->user->name ? $post->user->name : 'No User Found' }}/td>
这应该有效
您必须像这样在搜索查询中预先加载用户:
$posts = App\Post::with('user')
->where('title', 'LIKE', '%'.$query.'%')
->get();
您需要先在查询中设置with['user']
!
$posts = App\Post::with('user')->where('title', 'LIKE', '%'.$query.'%')->get();
然后你可以在你的视图中得到它:
<td>{{ $post->user->name ? $post->user->name : 'No User Found' }}/td>
希望对您有所帮助!
我想做一个搜索功能,所以我这样做了:
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);
}
但是当我尝试获取结果时,我遇到了一些这样的错误:
Undefined property: stdClass::$user (View: E:\laragon\www\blog\resources\views\admin\dashboard\search.blade.php)
这是这一行的错误:
<td><?php echo e($post->user->name); ?></td>
那我该如何解决呢?
你可以这样做
<td>{{ $post->user->name ? $post->user->name : 'No User Found' }}/td>
这应该有效
您必须像这样在搜索查询中预先加载用户:
$posts = App\Post::with('user')
->where('title', 'LIKE', '%'.$query.'%')
->get();
您需要先在查询中设置with['user']
!
$posts = App\Post::with('user')->where('title', 'LIKE', '%'.$query.'%')->get();
然后你可以在你的视图中得到它:
<td>{{ $post->user->name ? $post->user->name : 'No User Found' }}/td>
希望对您有所帮助!