#laravel-5.3 #laravel-backpack
#laravel-5.3 #laravel-backpack
Вопрос:
Например, мне нужно взять значение «id» и использовать его для поиска моей модели Article, но это значение (id), которое также отображается в URL: «/article / 4 / edit» и в параметрах «setColumns», я понятия не имею, какчтобы получить его.
Мне нужна ваша помощь. Это мой пример кода:
ArticleCrudController.php
public function __construct()
{
parent::__construct();
$this->crud->setModel('AppModelsArticle');
$this->crud->setRoute("admin/article");
$this->crud->setEntityNameStrings('article', 'articles');
$this->crud->setColumns(['id', 'title', 'text']);
// WHERE ARE YOU ID?!?!!!
$article = Article::findOrFail($id);
$pictures = $article->picture()->first()->name;
$this->crud->addFields([
[
'name' => 'title',
'label' => 'Title',
'type' => 'Text'
],
[
'name' => 'text',
'label' => 'Text',
'type' => 'ckeditor'
],
[ // Browse
'name' => 'image',
'label' => 'Article immage',
'type' => 'browse',
'value' => $pictures //Obviously without id don't work :'(
]
]);
}
Ответ №1:
Вы могли бы попытаться переопределить CrudController::edit
метод, которому передается идентификатор в качестве первого параметра.
public function edit($id)
{
$articlePicture = Article::findOrFail($id)->picture()->first()->name;
$this->crud->addField([
'name' => 'image',
'value' => $articlePicture
]);
return parent::edit($id);
}
Это может быть решением, но я не уверен, что это правильный способ сделать то, что вы хотите.
Комментарии:
1. Это не точный способ, но это идеальный способ! Вы решили все мои проблемы! Ты гений! Большое вам спасибо!
Ответ №2:
Используйте getCurrentEntry, чтобы получить текущий объект модели в crud
$article_id = $this->crud->getCurrentEntry()->id;