Created controller actions
public function publish(PublishArticleRequest $request)
{
$id = $request->get('id');
/**
* @var Article $article
*/
$article = $this->crud->getEntry($id);
$article->publish();
die;
return back();
}
public function unpublish(PublishArticleRequest $request)
{
$id = $request->get('id');
/**
* @var Article $article
*/
$article = $this->crud->getEntry($id);
$article->unpublish();
$article->save();
return back();
}
and button
return sprintf(
'<a href="%s" class="btn btn-xs btn-default">'
. '<i class="fa fa-fw fa-' . $icon . '"'
. ' title="' . $title . '"'
. ' data-toggle="tooltip"'
. ' data-placement="top"'
. '></i>'
. '</a>',
e(route('crud.article.' . $action, ['id' => $article->getKey()]))
);
and request
class PublishArticleRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return Auth::check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'id' => 'required|integer',
];
}
}
and finally route
Route::get('article/{id}/publish', ArticleCrudController::class . '@publish')
->where(
[
'id' => '[0-9]+'
])
->name('crud.article.publish');
Route::get('article/{id}/unpublish', ArticleCrudController::class . '@unpublish')
->where(
[
'id' => '[0-9]+'
])
->name('crud.article.unpublish');
But publish method in controller is not called. What i forgot? I need add acl-check and csrf-check, but this does not work even without the above checks.
Spam a little - stackoverflow wants more text in question, I didnt know what to say except what was already said, so I wrote this text, just for stackoverflow checking. Sorry for that.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire