我为资源控制器定义了一个自定义函数,如下所示:
public function publish (Request $request, $post_id = NULL)
{
if (!is_null($post_id)) {
$result = $this->update($request, $post_id);
} else {
$result = $this->store($request);
}
if ($result['success']) {
return ['success' => true, 'msg' => $result['msg']];
} else {
return ['success' => false, 'msg' => $result['msg']];
}
}
在一个刀片模板中,我想这样链接到它:
$('#publishBtn').click(function () {
$.post('{{action('CourseController@publish')}}', $('#createCourseForm').serialize() + '&post_status=published', function (data) {
data.success ? location.href = '/admin/course' : showMsg(data.msg, 'danger');
});
});
但在打开页面后,显示了以下错误,而实际上该方法存在:
Action App'Http'Controllers'CourseController@publish not defined.
(View: D:'wamp'www'lms'resources'views'admin'pages'course'course-create.blade.php)
就在CourseController
资源路由之前,为publish
方法添加一个路由
Route::post('publish', [
'uses' => 'CourseController@publish',
'as' => 'publish'
]);
....
Route::resource('course', 'CourseController');
然后在您的模板中
$('#publishBtn').click(function () {
$.post('{{route('publish')}}', $('#createCourseForm').serialize() + '&post_status=published', function (data) {
data.success ? location.href = '/admin/course' : showMsg(data.msg, 'danger');
});
});
您还需要为此创建一个路由。