Laravel按日期搜索不起作用

时间:2015-06-05 19:13:43

标签: laravel laravel-5

我需要按日期搜索。我的路线定义:

Route::get('/calendar/days?day={date}', 'HomeController@getDays');

enter image description here

在控制器方法中我有这个:

public function getDays($date)
{
    $articles = Article::where('published_at','=',$date)->get();
    dd($articles);
}

当您点击下图中的链接时,我会收到 NotFoundHttpException

使用JS生成链接。这可能是问题吗?

1 个答案:

答案 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>