)我試圖在Laravel 5中實現一個category/subreddit搜索,但我沒有得到任何結果與我的查詢。在Laravel中實現搜索:調用成員函數null(
我不斷收到此錯誤:
Call to a member function posts() on null
搜索路線我使用
Route::resource('subreddit', 'SubredditController');
Route::post('search', ['as' => 'search', 'uses' => '[email protected]']);
當我尋找的東西它重定向我localhost/reddit/search
我很樂意,如果它可以重定向到localhost/reddit/subreddit/{id}/search
這是012在SubredditController
public function search(Request $request, Subreddit $subreddit) {
$query = Input::get('search');
$subreddit = Subreddit::with('posts.votes')->with('moderators.user')->where('id', $subreddit->id)->first();
$posts = $subreddit->posts()->where('title', 'LIKE', '%' . $query . '%');
$posts->setPath($subreddit->id);
return view('subreddit.search', compact('query', 'subreddit', 'posts'));
}
功能給空
我不明白爲什麼它返回null時相同的查詢工作於show()
方法。
RouteServiceProvider
$router->model('subreddit', 'App\Subreddit');
$router->model('posts', 'App\Post');
$router->model('moderators', 'App\Moderator');
路由我使用
Route::resource('posts', 'PostsController');
Route::resource('votes', 'VotesController');
Route::resource('subreddit', 'SubredditController');
Route::resource('subreddit.moderators', 'ModeratorsController');
Route::get('mysubreddits', [
'as' => 'mysubreddits',
'uses' => '[email protected]'
]);
Route::post('search', ['as' => 'search', 'uses' => '[email protected]']);
編輯:所以我現在得到正確的結果,當我24
取代$subreddit->id
這是我版(Subreddit)的id正在觀看。爲什麼我無法使用$subreddit->id
,而我可以在相同控制器的show()
方法中使用?
謝謝,我停止接受任何錯誤和搜索視圖加載,但沒有任何結果。沒有搜索結果,甚至沒有subreddit名稱。這就是我如何顯示subreddit名稱'{{$ subreddit-> name}}''以及如何遍歷帖子'@foreach($ posts as $ post)',但它都是空的。 – Halnex
@Halnex - 你在使用路由模型綁定嗎?你得到什麼'dd($ subreddit-> id)'? –
是的,我正在使用路由模型綁定。當我dd($ subreddit-> id)時,我得到'null' – Halnex