如何在Laravel关系中使用firstOrNew
方法。
我有以下关系:
/**
* The rows that belong to the timesheet.
*
* @return Object
*/
public function rowTimesheet()
{
return $this->hasMany('App\Models\Timesheet\RowTimesheet');
}
我正在尝试使用以下内容为数据库中的时间表创建新行。我没有收到任何错误,但没有插入行。
有什么想法吗?
/**
* Create timesheet rows.
*
* @param $id
* @param $row
*/
public function createTimesheetRow($id, $row)
{
return $this->timesheet->find($id)->rowTimesheet()->firstOrNew($row);
}
答案 0 :(得分:0)
您好firstOrNew
firstOrNew返回的模型尚未持久保存到数据库中。您需要手动调用save才能保留它
所以你可以试试
public function createTimesheetRow($id, $row)
{
return $this->timesheet->find($id)->rowTimesheet()->firstOrCreate($row);
}
或
public function createTimesheetRow($id, $row)
{
$row = $this->timesheet->find($id)->rowTimesheet()->firstOrNew($row);
return $row->save();
}
您可以在Laravel Docs
中阅读更多信息