Как получить значение одного из атрибутов, используемых Backpack?

Например, мне нужно взять значение "id" и использовать его для поиска моей типовой статьи, но это значение (id), которое также появляется в URL-адресе: "/article/4/edit" и в параметрах "setColumns", я понятия не имею, как его получить.

Мне нужна ваша помощь. Это мой пример кода:

ArticleCrudController.php

public function __construct()
{
    parent::__construct();

    $this->crud->setModel('App\Models\Article');
    $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 :'(
        ]

    ]);

}

person Cinzia Nicoletti    schedule 11.10.2016    source источник


Ответы (2)


Вы можете попытаться переопределить метод CrudController::edit, которому передается идентификатор в качестве первого параметра.

public function edit($id)
{
    $articlePicture = Article::findOrFail($id)->picture()->first()->name;

    $this->crud->addField([
        'name' => 'image',
        'value' => $articlePicture
    ]);

    return parent::edit($id);
}

Это может быть решением, но я не уверен, что это правильный способ делать то, что вы хотите.

person Federico Liva    schedule 12.10.2016
comment
Это не точный способ, но это идеальный способ! Вы решили все мои проблемы! Ты гений! Большое спасибо! - person Cinzia Nicoletti; 12.10.2016

Использование должно использовать getCurrentEntry для получения текущего объекта модели в crud

$article_id = $this->crud->getCurrentEntry()->id;
person Balaji D    schedule 21.11.2020