我需要按日期搜索。我的路线定义:
Route::get('/calendar/days?day={date}', 'HomeController@getDays');
在控制器方法中我有这个:
public function getDays($date)
{
$articles = Article::where('published_at','=',$date)->get();
dd($articles);
}
当您点击下图中的链接时,我会收到 NotFoundHttpException 。
使用JS生成链接。这可能是问题吗?
答案 0 :(得分:1)
您不应该在路由定义中定义查询字符串参数。有关其原因的详细说明,请参阅this answer。所以在你的情况下你有两个选择:
1。从定义中删除?day={date}
:
Route::get('/calendar/days', 'HomeController@getDays');
在您的控制器中访问请求输入参数,如下所示:
use Illuminate\Http\Request;
...
public function getDays(Request $request)
{
$date = $request->input('date');
$articles = Article::where('published_at', '=', $date)->get();
}
2。将您的路线定义修改为以下内容:
Route::get('/calendar/days/{date}', 'HomeController@getDays');
在这种情况下,您现在所需的控制器代码无需更改,但是您通过JavaScript生成的链接需要如下所示:
<a href="/calendar/days/2015-04-09">9</a>