在Laravel中保存后返回主要ID

时间:2015-03-24 20:57:31

标签: php mysql laravel laravel-4

我正在努力学习Laravel,并且在我向数据库中插入一行之后如何回复id。

这是我当前的NotesController:

    public function store()
{
    $form = new NotesCreation($this->currentUser(), $this->params());
    if ($form->save()) {
        return Redirect::route('notes.edit', WHERE ID NEEDS TO GO)
            ->withSuccess('Note added successfully');
    } else {
        $this->view('create')
            ->withErrors($form->getErrors());
    }
}

我尝试添加$ form-> id,但它不起作用。我得到一个Undefined属性:NotesCreation :: $ id

这是我的NotesCreation模型:

    public function save()
{
    $success = false;

    if ($this->isValid()) {
        $this->user->notes()->save($this->notes);

        $success = (bool) $this->notes;
    }

    return $success;
}

我做错了什么?我非常感谢任何帮助! 谢谢!

2 个答案:

答案 0 :(得分:0)

您的 - > notes() - > save()方法必须返回id:

$success = $this->user->notes()->save($this->notes);
return $success;

您可以阅读有关如何在以下位置返回最后一次intested id的信息: http://laravel.com/docs/4.2/eloquent#insert-update-deletehttp://laravel.com/docs/4.2/queries#inserts

答案 1 :(得分:0)

使用一种简单的方法来获取最后插入的ID。

$leadmodel           = new Lead(); //mhy model name
$leadmodel->name     = 'name';
$leadmodel->save();
$lead_id = $leadmodel->id; //last inserted id
echo $lead_id ;