Laravel 5.1 firstOrNew与人际关系

时间:2015-11-27 10:55:17

标签: php laravel laravel-5

如何在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);
}

1 个答案:

答案 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

中阅读更多信息