Php 是否在laravel中更新表格及其相关模型?

Php 是否在laravel中更新表格及其相关模型?,php,laravel,model,laravel-5,object-relational-model,Php,Laravel,Model,Laravel 5,Object Relational Model,我有客户表和客户地址信息表。在更新client.my模型类时,我需要同时更新这两个表 class Client extends Model { public function addressInfo() { return $this->hasOne('App\Model\ClientAddressInfo'); } } class ClientAddressInfo

我有客户表和客户地址信息表。在更新client.my模型类时,我需要同时更新这两个表

        class Client extends Model {
             public function addressInfo() {
              return $this->hasOne('App\Model\ClientAddressInfo');
             }
        }

      class ClientAddressInfo extends Model {    
            protected $table = 'client_address_info';    
              public function client() {
               return $this->belongsTo('App\Model\Client');
            }
     }
下面给出了我要更新的控制器

$client = Client::findOrFail($id);
$client->name = rand(0, 1222222);
$address = ClientAddressInfo::where('client_id', '=', $id)->get();
$address->street = "new street";
$address->save();

但它不起作用,请您解释一下更新模型及其相关模型的最佳做法。

您可以做得更简单:

$client = Client::findOrFail($id);
$client->name = rand(0, 1222222);
$client->addressInfo->street = 'new street';
$client->addressInfo->save();
$client->save();
除了在两个模型上调用
save()
之外,您还可以使用
push()
来保存模型及其所有相关模型:

$client = Client::findOrFail($id);
$client->name = rand(0, 1222222);
$client->addressInfo->street = 'new street';
$client->push(); // save client and addressInfo

此外,我们还可以在@lukasgeiter的回答中使用如下质量赋值:

$client = Client::findOrFail($id);
$client->fill($request->all());
$client->addressInfo->fill($request->all());
$client->push();

我想有一天我会和拉威尔一起哭。谢谢你的回答。