在模型中插入只有一个模型的关系是一对多的模型

时间:2016-06-24 13:08:15

标签: php laravel

我想插入一个关系,从检查到inspection_details的关系是一对多。一次检查可能有多个细节。问题是我有一个模型“检查”。如何从inspection_details表中插入或检索数据。

Table structure is this

检验代码模型已使用

 class Inspection extends Model
 {
    protected $fillable =[
       'schedule_id', 'inspector', 'comments', 'signature'
    ];


    public function details()
    {
       return $this->belongsToMany('App\Inspection', 'inspection_details');
    }
 }

但我无法插入或检索详细记录表。

我用过修补程序的代码:

 $ins = App\Inspection::find(1)
 $ins->details

我正在获取详细信息的实例,但我不知道如何在inspection_details表中插入数据。

2 个答案:

答案 0 :(得分:0)

你应该改变两件事。

目前您正在使用import java.util.*; public class AggPersone { public static void main(String[] args) { ArrayList<Item> voce = new ArrayList<Item>(); voce.add(new Item("Robert", "Via qualcosa", "123")); voce.add(new Item("Roberto","Via qualcosina", "123")); voce.add(new Item("Robert", "Via qual ", "2222")); Scanner input = new Scanner(System.in); System.out.println("chi cerchi?"); String chiave = input.nextLine(); int i = 0; while(i < voce.size()){ if(voce.get(i).getNome().equals(chiave)){ System.out.println(voce.get(i).toString()); break; } i++; if(i == voce.size()){ System.out.println("Nessun match"); } } input.close(); } } 。当你有many-to-many关系时使用。

此外,您将自己的模型与自身联系起来。 belongsToMany

这是一个如何解决问题的例子:

belongsToMany('App\Inspection', ...)

答案 1 :(得分:0)

首先,inspectioninspection_details之间的关系是错误的,inspection有很多inspection_details所以你可以像这样引用它:

检验模式

public function details()
{
   return $this->hasMany('App\InspectionDetail');
}

这是从inspection_detailinspection的反比关系:

InspectionDetail模式

public function inspection()
{
   return $this->belongsTo('App\Inspection');
}

在保存链接到检查的新细节方面,您首先要获取应与细节相关联的检查:

$ins = App\Inspection::find(1)

之后定义新的inspection_detail

$insDetail = App\InspectionDetail::Create(array(
    // your parameters that need to be set
));

然后将其绑定到inspection

$ins->detail = $insDetail;

最后将其保存到数据库中:

$ins->save();