我在控制器中从视图中提取数据时发现了一种奇怪的行为:
假设我在路线(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
方法,但仍然没有回应。
答案 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