Laravel 5.4:从没有参数的url获取数据

时间:2017-06-07 11:06:49

标签: jquery laravel-5 laravel-5.4

我在控制器中从视图中提取数据时发现了一种奇怪的行为:

假设我在路线(web.php)中定义了此路线:

Route::get('user/getPageContent/{id}', ['uses'=>'Users\DashboardController@getPageContent', 'as'=>'user.pagecontent']);

现在在我的DashboardController中,我有一个返回json的函数:

public function getPageContent($id) 
{
    $content_model = new Content();
    $content = $content_model->getContent($id);
    $response = response()->json($content);

    return $response;
}

并在我看来拉这个,我使用Jquery $ .get方法:

$.get('user/getPageContent/'+id, function(response){
    //logic goes here
});

这很有效。现在,如果我为没有参数的网址创建相同的功能,我没有得到回复:我创建路由作为获取请求:

Route::get('user/getAssessmentPage', ['uses'=>'Users\DashboardController@getAssessmentPage', 'as'=>'user.assessmentpage']);

在控制器中定义函数:

public function getAssessmentPage()
{
    $content= Assessment_Page::all();
    $response = response()->json($content);

    return $response;
}

并尝试在我的视图中访问它:

$.get('user/getAssessmentPage', function(response){
    console.log(response);
});

但我没有得到回复。没有响应,控制台没有错误,没有。所以我的问题是,对于没有显示参数的网址,提取数据的方法是什么?

还应该提到我甚至尝试.load方法,但仍然没有回应。

1 个答案:

答案 0 :(得分:0)

所以问题出在我的路线上。这就是他们最初的结构:

Route::resource('user', 'Users\DashboardController');
Route::group(['middleware' => ['auth']], function () {
    Route::get('user', ['uses'=>'Users\DashboardController@index', 'as'=>'user.layout']);
    Route::get('user/displayMenuItems', ['uses'=>'Users\DashboardController@displayMenuItems', 'as'=>'user.menuitems']);
    Route::get('user/getSubChapterContent/{id}', ['uses'=>'Users\DashboardController@getSubChapterContent', 'as'=>'user.subchaptercontent']);
    Route::get('user/getPageContent/{id}', ['uses'=>'Users\DashboardController@getPageContent', 'as'=>'user.pagecontent']);
    Route::get('user/getQuiz/{chapter_id}', ['uses'=>'Users\DashboardController@getQuiz', 'as'=>'user.quiz']);
    Route::get('user/getCorrectChoice/{question_id}',['uses'=>'Users\DashboardController@getCorrectChoice', 'as'=>'user.getanswer'] );
    Route::post('user/logChapterQuizes', ['uses'=>'Users\DashboardController@logChapterQuizes', 'as'=>'user.logquiz']);
    Route::get('user/getAssessmentPage', ['uses'=>'Users\DashboardController@getAssessmentPage', 'as'=>'user.getAssessmentPage']);    
});

但在Route::resource('user', 'Users\DashboardController')移动Route::group后,我现在可以得到回复。

路线的顺序很重要。

很幸运能从laracasts那里得到答案。看到这个帖子:

https://laracasts.com/discuss/channels/laravel/laravel-54-fetching-data-from-url-with-no-parameter