【发布时间】:2015-05-11 15:02:07
【问题描述】:
在我的应用程序中,我做了一个奇怪的观察,一个看似相等的操作与另一个操作有不同的结果。
我有以下表格:
aliases:
$table->engine = "InnoDB";
$table->increments("id");
$table->morphs("aliasable");
$table->string("alias");
$table->string("locale");
categories:
$table->engine = "InnoDB";
$table->increments('id');
Category 模型与Alias 模型有关系:
public function aliases()
{
return $this->morphMany("Alias", "aliasable");
}
当试图操作一个类别的别名数据时,以下两种方法是有区别的:
$category = Category::find(1);
$alias = $category->aliases()->first();
$alias->alias = "test";
$alias->save();
$category = Category::find(1);
$alias = $category->aliases()->first()->alias = "test";
$category->aliases()->first()->save();
第一个正在工作,第二个没有保存更改。 我想让第二个版本工作,因为我尝试在我的 Category 模型上实现代理属性,以便像这样更改别名:
$category = Category::find(1);
$category->germanAlias = "Heidi";
$category->push();
你知道为什么我的方法没有按预期工作吗?
【问题讨论】:
标签: laravel eloquent laravel-5