Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 单柱拉威尔关系_Php_Laravel_Relationship - Fatal编程技术网

Php 单柱拉威尔关系

Php 单柱拉威尔关系,php,laravel,relationship,Php,Laravel,Relationship,我有一个名为fields的表: Schema::create('fields', function (Blueprint $table) { $table->increments('id'); $table->string("label"); $table->string("name")->unique(); $table->text("options")->nullable(); $table->timestam

我有一个名为fields的表:

Schema::create('fields', function (Blueprint $table) {
    $table->increments('id');
    $table->string("label");
    $table->string("name")->unique();
    $table->text("options")->nullable();
    $table->timestamps();
});
我想要另一个表,它只存储一些字段的ID。我将此字段称为默认字段

我基本上想要一种关系或逻辑,它允许我像处理任何其他关系一样获取这些默认的_字段:

Schema::create('default_fields', function (Blueprint $table) {
    $table->increments('id');
    $table->integer("field_id");
});
如何创建一个关系来获取此表中id存在的所有字段?我也希望能够同步

我会为DefaultField创建一个模型,然后像Field::where'id',DefaultField::get->pull'id'这样做吗


然后编写我自己的同步逻辑?有没有一个超级简单的方法让我错过了?我还希望能够像处理任何其他关系一样对此进行排序。

在您的情况下,字段表中的“is_default”布尔属性将更有效。

您可以使用具有此关系的模型字段:

public function defaultFields()
{
    return $this->hasMany('App\DefaultField');
}
在控制器中,您可以获取字段及其相关的默认字段,如:

您可以在DefaultField模型中使用类似的方法字段:

在控制器中,您可以获取DefaultField及其父字段:


我需要它像一个关系一样工作,因为默认\u字段也将根据其id顺序进行排序。例如,您可以添加排序\u默认\u编号。在您的情况下,规范化是开销。在他的情况下,使用$fields=Field::whereHas'defaultFields'->get;,不是更好吗?我就是这样理解他的案子的?kjdion84?
$fields = Field::with('defaultFields')->get();
public function field()
{
    return $this->belongsTo('App\Field');
}
$defaultFields = DefaultField::with('field')->get();