訪問集合時得到非對象的屬性我寫了一個控制器發送帖子模型這是一起分類和圖片:試圖在查看
class HomeController extends Controller
{
public function index()
{
$latestPosts =
Post::with([
'latestPicture',
'categories' => function ($query) {
$query->select(['categories.cat_id', 'name']);
}
])
->take(12)->orderBy('created_at', 'desc')
->get(['post_id', 'post_title', 'post_alias', 'post_content', 'comments_count', 'created_at']);
// dd($latestPosts) ;
return view('main.pages.home', ['latestPosts' => $latestPosts]);
}
}
我見
及使用latestPosts我寫的這樣的:
@if (!$latestPosts->isEmpty())
@foreach($latestPosts as $post)
@if(key($latestPosts) <3)
<!-- Some HTML -->
@endif
@endforeach
@endif
但我面臨過這樣的錯誤:
Trying to get property of non-object (View: D:\wamp\www\TC\resources\views\main\pages\home.blade.php)
什麼是問題?我如何在視圖中訪問該集合?
你的用法是正確的。你確定導致錯誤的行實際上是帶有@ @ if條件的行嗎?此外,不需要'@ if'條件,因爲一個空集合不會在不拋出任何錯誤的情況下迭代任何東西。 – Bogdan
您可以嘗試'@if(空($ latestPosts))' – Saad
@Saad公平點,但是查詢生成器的get方法總是返回一個Collection實例,即使它沒有任何項目,'isEmpty'方法儘管如此。 – Bogdan