行动CourseController@publish未定义错误,而已定义错误


Action CourseController@publish not defined error while that is defined

我为资源控制器定义了一个自定义函数,如下所示:

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');
   });
 });

您还需要为此创建一个路由。