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

How to get the value of one of the attributes used by 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 :'(
        ]

    ]);

}

您可以尝试覆盖将 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);
}

这可能是一个解决方案,但我不确定这是否是执行您想要的操作的正确方法。

使用 getCurrentEntry 获取 crud 中的当前模型对象

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