Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 Laravel-使用一对多关系保存记录时出错_Php_Laravel_Laravel 4_Eloquent - Fatal编程技术网

Php Laravel-使用一对多关系保存记录时出错

Php Laravel-使用一对多关系保存记录时出错,php,laravel,laravel-4,eloquent,Php,Laravel,Laravel 4,Eloquent,努力用laravel关系更新我的代码 我有两张桌子。客户和与客户有许多关系的预订和与客户有归属关系的预订 预订表还通过链接表与产品表具有多对多关系 我获得了客户记录,现在需要为客户创建预订 我假设这个过程是: 创建预订对象,将预订附加到客户,然后链接到产品。(reservation表有一些关系,但我现在要让它工作) 如果我尝试此代码,我会得到一个错误字段“customer\u id”没有默认值-数据库表允许空值,并且没有设置验证规则,因此假设这与我设置的关系有关 `$reservation =

努力用laravel关系更新我的代码

我有两张桌子。客户和与客户有许多关系的预订和与客户有归属关系的预订

预订表还通过链接表与产品表具有多对多关系

我获得了客户记录,现在需要为客户创建预订

我假设这个过程是: 创建预订对象,将预订附加到客户,然后链接到产品。(reservation表有一些关系,但我现在要让它工作)

如果我尝试此代码,我会得到一个错误
字段“customer\u id”没有默认值
-数据库表允许空值,并且没有设置验证规则,因此假设这与我设置的关系有关

`$reservation = new Reservation;

        $reservation->play_date=$play_date->format('Y-m-d');
        $reservation->booked_date=$booked_date->format('Y-m-d');
        $reservation->am_tee=$am_time->format('H:i:s');
        $reservation->pm_tee=$pm_time->format('H:i:s');
        $reservation->save();

        $customer->reservation()->associate($reservation);`
错误发生在
$reservation->save()中

然后我需要使用创建的$reservation在product link表中创建条目,以便能够访问新创建的reservation及其与产品的关系

我可以使用
$customer->reservation()->save($reservation)创建条目但是我似乎没有$reservation对象可以使用(或者我有吗?)

我对这种关系感到非常困惑,非常感谢所有帮助我理解如何让它发挥作用的人

谢谢

以下是我在模型中的关系:

    Customer Class:

        public function reservation() {
                return $this->hasMany('Reservation');
            }

Reservation Class:

public function customer() {
        return $this->belongsTo('Customer');
    }
唯一有效的方法是
$customer->reservation()->save($reservation)-因此我假设这是正确的方法,并且必须重新编写代码<代码>关联()

更新:在mysql中重新创建了我的表-我现在可以按预期保存原始预订记录,然后使用以下命令关联到客户记录:

$reservation->customer()->associate($customer)

这需要一段时间才能让它和我融为一体

第一部分

因为客户有很多预订,所以在添加预订之前需要客户id

在你的密码上

您需要首先找到拥有预订的客户

$customer = Customer::find($id);
现在,

然后,
$reservation->save()现在应该成功了

第二部分

关于你的问题:

“我可以使用$customer->reservation()->save($reservation)创建条目;但是我似乎没有一个$reservation对象可以使用(或者我可以吗?)”

您可以使用

$reservations = $customer->reservation->get(); 
//where customer is the one you had on Customer::find($id);

然后,您可以逐个循环预订。(尽管我认为您可能需要预订ID,因此上面的第一种方法更好)

第1部分

因为客户有很多预订,所以在添加预订之前需要客户id

在你的密码上

您需要首先找到拥有预订的客户

$customer = Customer::find($id);
现在,

然后,
$reservation->save()现在应该成功了

第二部分

关于你的问题:

“我可以使用$customer->reservation()->save($reservation)创建条目;但是我似乎没有一个$reservation对象可以使用(或者我可以吗?)”

您可以使用

$reservations = $customer->reservation->get(); 
//where customer is the one you had on Customer::find($id);

然后,您可以逐个循环预订。(虽然我认为您可能需要预订ID,因此上面的第一种方法更好)

我不确定我是否了解如何
$customer->reservation()->保存($reservation)的行为不同于
$customer->reservation()->associate($reservation)以产生问题的方式?能否显示在Customer和Reservation模型中创建的关系方法?在何处定义
$Customer
?$Customer在前面的代码中定义为Customer::find($id);我不确定我是否理解如何
$customer->reservation()->保存($reservation)的行为不同于
$customer->reservation()->associate($reservation)以产生问题的方式?能否显示在Customer和Reservation模型中创建的关系方法?在何处定义
$Customer
?$Customer在前面的代码中定义为Customer::find($id);