我使用嵌套树使用位置并使用" parent"字段选择父位置(我使用重新排序记录创建)。但我需要"父母"字段只显示父母,只有parent_id等于NULL的位置。
在位置模型fields.yaml我有:
fields:
name:
label: Name
oc.commentPosition: ''
span: left
required: 1
type: text
slug:
label: Slug
oc.commentPosition: ''
span: right
required: 1
preset:
field: name
type: slug
type: text
parent:
label: Parent Location
oc.commentPosition: ''
nameFrom: name
descriptionFrom: description
span: left
type: relation
placeholder: 'select parent location'
description:
label: Description
size: large
oc.commentPosition: ''
span: right
type: textarea
但现在我在后端字段" parent"上获得所有位置。有没有办法只获得父母的位置?
表架构:
条目:
$table->engine = 'InnoDB';
$table->increments('id')->unsigned();
$table->integer('user_id')->nullable()->unsigned();
$table->string('name')->nullable();
$table->string('slug');
$table->text('content')->nullable();
$table->integer('location_id')->nullable();
$table->timestamp('published_at')->nullable();
$table->boolean('published')->default(0);
$table->timestamp('created_at')->nullable();
$table->timestamp('updated_at')->nullable();
位置:
$table->engine = 'InnoDB';
$table->increments('id')->unsigned();
$table->string('name')->nullable();
$table->string('slug')->nullable();
$table->text('description')->nullable();
$table->integer('parent_id')->nullable()->unsigned();
$table->integer('nest_left')->nullable();
$table->integer('nest_right')->nullable();
$table->integer('nest_depth')->nullable();
$table->timestamp('created_at')->nullable();
$table->timestamp('updated_at')->nullable();
答案 0 :(得分:0)
嗯,我不确定我们可以通过relation widget
传递条件并制作filtered list from database
,而是建议手动使用{{1获得更多控制权的方式。
为此,请将drop-down
中的关系字段parent
更改为configuration
(因为这将是您的数据库字段)
新配置将如下所示
parent_id
现在,在您的位置模型中,您需要提供来源
parent_id:
label: Parent Location
oc.commentPosition: ''
span: left
type: dropdown
placeholder: 'select parent location'
这将返回public function getParentIdOptions(){
return \Locations::->whereNull('parent_id')->lists('name', 'id');
}
( ID,名称密钥=>值对),其中array of location
IS NULL 或您的自定义条件。
如果您遇到任何问题,请尝试此操作,请发表评论。