【问题标题】:Update a table and its related model in laravel?在 laravel 中更新表及其相关模型?
【发布时间】:2015-05-01 06:04:13
【问题描述】:

我有客户表和客户地址信息表。更新下面给出的 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();

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

【问题讨论】:

    标签: php laravel model laravel-5 object-relational-model


    【解决方案1】:

    我们也可以在@lukasgeiter 的回答中使用质量分配,如下所示:

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

    【讨论】:

      【解决方案2】:

      你可以更简单地做到这一点:

      $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
      

      【讨论】:

      • 我想有一天我会和 Laravel 一起哭。也谢谢你的回答。
      猜你喜欢
      • 2014-08-03
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 2016-08-28
      • 2013-11-22
      • 2015-06-13
      • 2013-07-04
      • 2015-10-23
      相关资源
      最近更新 更多