我有一个名为" fields":
的表Schema::create('fields', function (Blueprint $table) {
$table->increments('id');
$table->string("label");
$table->string("name")->unique();
$table->text("options")->nullable();
$table->timestamps();
});
我想要另一个表,只存储一些字段的ID。我会称之为default_fields
。
我基本上想要一种关系或逻辑,允许我像其他任何关系一样抓住这些default_fields
:
Schema::create('default_fields', function (Blueprint $table) {
$table->increments('id');
$table->integer("field_id");
});
如何创建一个关系来抓取此表中存在id的所有字段?我也希望能够sync()
。
我是否只为DefaultField
制作模型,然后执行类似Field::whereIn('id', DefaultField::get()->pluck('id'))
的操作?
然后编写我自己的sync()
逻辑代码?有一种超级简单的方法可以做到这一点,我错过了吗?我也希望能像对待任何其他关系一样对此进行排序。
答案 0 :(得分:1)
您可以拥有具有此关系的模型Field
:
public function defaultFields()
{
return $this->hasMany('App\DefaultField');
}
在您的控制器中,您可以使用与Field
相关的DefaultFields
来获取$fields = Field::with('defaultFields')->get();
:
field
您可以在DefaultField
模型中使用类似的方法public function field()
{
return $this->belongsTo('App\Field');
}
:
DefaultField
在您的控制器中,您可以使用其父Field
获取$defaultFields = DefaultField::with('field')->get();
:
SELECT A.Table_id, T.table_name , dateformat(A.update_time,'mm/dd/yyyy hh:mm:ss.nnnnnn') LastModifiedTime FROM SYS.SYSIQTAB as A, SYS.SYSTABLE as T WHERE A.table_id = T.table_id AND T.table_name ='TableName'
答案 1 :(得分:0)
在您的情况下,更高效的将是' is_default'字段表中的布尔属性。