如何获取Backpack使用的其中一个属性的值?

时间:2016-10-11 17:18:58

标签: laravel-5.3 backpack-for-laravel

例如,我需要采用" 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 :'(
        ]

    ]);

}

2 个答案:

答案 0 :(得分:3)

您可以尝试覆盖作为第一个参数传递id的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 :(得分:0)

使用时应使用getCurrentEntry来获取Crud中的当前模型对象

$article_id = $this->crud->getCurrentEntry()->id;