【发布时间】:2019-08-30 00:52:51
【问题描述】:
我正在尝试在 Laravel 中创建一个搜索功能,并在我对视图执行 foreach 时返回“未定义变量:帖子”。
我的代码:
后模型
class Post extends Model {
protected $fillable = [
'creator',
'post_url',
'books',
'likes',
'created_at'
];
public function user() { return $this->belongsTo(User::class); }
}
主视图:
<form action="{{ url('/search') }}" method="get">
<input type="text" class="search-text form-control form-control-lg" name="q" placeholder="Search" required>
</form>
控制器:
public function search($keyword)
{
$result = Post::where('books', 'LIKE', "'%' . $keyword . '%'")->get();
return view('/search', ['posts' => $result]);
}
路线:
Route::get('/search/{keyword}', 'SearchController@search');
搜索视图:
@foreach($posts as $post)
<div class="post">{{ $post->id }}</div>
@endforeach
我在这里做错了什么?
【问题讨论】:
-
尝试返回视图('search')->with('posts', $results);
-
问题很可能是控制器没有获取到关键字
-
是的,这不起作用。我应该如何将关键字传递给控制器? @DerekPollard
-
@Jascusi 从参数中删除
$keyword,并在方法中使用它:$keyword = request()->input('q'); -
这更有意义,但我遇到了同样的错误。
标签: laravel