php - 在 laravel 中更新表及其相关模型?

标签 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 extends Model {    
            protected $table = 'client_address_info';    
              public function client() {
               return $this->belongsTo('App\Model\Client');
            }
     }

我的更新 Controller 如下。

$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

关于php - 在 laravel 中更新表及其相关模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783499/

相关文章:

php - 需要动态构建表单的应用程序的最佳 MySQL 模式?

php - Woocommerce 3 商店页面上“添加到购物车”下的“添加额外”按钮

php - 从 PHP 中的 XML 文件中获取表格的特定行

laravel - 加速 Eloquent 查询

php - 如何保存到数据库中

php - Laravel 高阶消息意外结果

php - 用于从 gmail、hotmail、yahoo mail 等导入联系人的任何框架/第三方工具

Django项目: namespace 'admin' isn't unique

ruby-on-rails - Rails - 简化计算模型和对象

asp.net-mvc - ASP.NET MVC 4 模型属性值从编辑 View 中丢失