我正在使用Backpack for Laravel CRUD功能,目前在select
字段类型上存在问题,关于保存表单后,一旦我回去尝试编辑它并没有预先定义,我的已选择选项?
这是我的setup()
控制器中的Accounts
代码:
$this->crud->setModel("App\Models\Accounts");
$this->crud->setRoute("admin/accounts");
$this->crud->setEntityNameStrings('Accounts', 'Account');
$this->crud->addField([
'label' => "Proxy",
'type' => 'select',
'name' => 'proxy_id',
'entity' => 'proxy',
'attribute' => 'id',
'model' => "App\Models\Proxies",
'nullable' => true
]);
这是我在proxy()
模型中的Accounts
实体:
public function proxy()
{
return $this->hasOne(Proxies::class, 'id', 'proxy_id');
}
这是App\Models\Proxies
类:
class Proxies extends Model
{
use CrudTrait;
public $timestamps = false;
protected $table = 'proxies';
protected $fillable = [
'ip',
'port',
'username',
'password',
'status'
];
public function getStatusValue()
{
switch($this->status) {
case "0":
return '<span class="label label-success">Offline</span>';
break;
case "1":
return '<span class="label label-success">Online</span>';
break;
}
return null;
}
}
这是我的 proxy_id 列的数据库迁移:
public function up()
{
Schema::table('accounts', function(Blueprint $table)
{
$table->integer('proxy_id')->nullable();
});
}
更新
我已将{!! $field['name'].' - '.old($field['name']).' - '.$connected_entity_entry->getKey() !!}
添加到一个新创建的文件中: /resources/views/vendor/backpack/crud/fields/select.blade.php ,我看到的结果是:>
proxy_id - - 1
因此old()
函数似乎无法正常工作?