Laravel背包select2_from_ajaxselect更改结果和默认值

Laravel Backpack select2_from_ajax select change the result and default value

对于背包演示,我想同时显示 ID 和 Title。 搜索结果没有问题,在select2处选择也没有问题,问题是保存后不显示,变成空白

如何设置?

喜欢下面

backpack-demo/app/Http/Controllers/Admin/MonsterCrudController.php

[ // select2_from_ajax: 1-n relationship
                'label'                => 'Select2_from_ajax', // Table column heading
                'type'                 => 'select2_from_ajax',
                'name'                 => 'select2_from_ajax', // the column that contains the ID of that connected entity;
                'entity'               => 'article', // the method that defines the relationship in your Model
                'attribute'            => 'id_title', // foreign key attribute that is shown to user
                'model'                => "Backpack\NewsCRUD\app\Models\Article", // foreign key model
                'data_source'          => url('api/article'), // url to controller search function (with /{id} should return model)
                'placeholder'          => 'Select an article', // placeholder for the select
                'minimum_input_length' => 2, // minimum characters to type before querying results
                'tab'                  => 'Relationships',
                'wrapperAttributes'    => ['class' => 'form-group col-md-12'],
            ],

backpack-demo/app/Http/Controllers/Api/ArticleController.php

        if ($search_term) {
            return Article::
            selectRaw("CONCAT('Article ID: ', id,' | Title: ', Title) AS id_title, articles.*")
            ->where('title', 'LIKE', '%'.$search_term.'%')->paginate(10);
        } else {
            return Article::selectRaw("CONCAT('Article ID: ', id,' | Title: ', Title) AS id_title, articles.*")
            ->paginate(10);
        }

解决方案是在 Article Model 创建另一个 accessor 函数

public function getIdTitleAttribute()
{
    return 'Article ID: ' . $this->id . ' | Title: ' . $this->title;
}