【发布时间】:2017-01-24 00:12:55
【问题描述】:
我正在使用 Laravel 5 构建一个简单的时间跟踪应用程序,其中我有两个 Laravel 模型,一个称为“用户”,一个称为“周”
关系非常简单:
周.php:
public function user()
{
return $this->belongsTo('App\User');
}
用户.php:
function weeks()
{
return $this->hasMany('App\Week');
}
现在,User.php 文件还有一个名为“getCurrentWeek()”的简单辅助/新奇函数,顾名思义,它返回当前星期
function getCurrentWeek()
{
$possibleWeek = $this->weeks->sortByDesc('starts')->all();
if(count($possibleWeek) != 0)
{
return $possibleWeek[0];
}
else
{
return null;
}
}
我的问题是:如果我为用户创建第一周并将其附加/关联到用户,如下所示:
$week = new Week;
//Omitted: Setting so attributes here ...
$week->user_id = $user->id;
$weeks->save()
$user->weeks()->save($week);
然后调用$user->getCurrentWeek();方法,该方法返回null,虽然已经创建了新的一周,但与用户相关并已保存到数据库中。在我看来,getCurrentWeek() 的预期行为是返回新创建的一周。
我在这里对 Eloquent 有什么误解/做错了什么?
【问题讨论】:
标签: php laravel model eloquent relationship