如何从插入方法laravel 5.1中获取最后插入的id


How to get last inserted id from insert method laravel 5.1

我已经从Model在数据库中插入了值,这是代码:

控制器:

class MovieController extends Controller
{   
    /**
     * Create a new movie model instance.
     *
     * @return void
     */
    public function __construct(MovieModel $movie){
        $this->movie = $movie;
    }
    /**
     * Store a newly created resource in storage.
     *
     * @param  'Illuminate'Http'Request  $request
     * @return 'Illuminate'Http'Response
     */
    public function store(MovieRequest $request)
    {               
        if($this->movie->createMovie($input)){
            return Redirect::back()->with('message', '<strong>' . $input['name'] . '</strong> movie has been created');
        }
    }
}

型号:

class Movie extends Model
{   
    public function createMovie($input) {
        return $this->insert($input);   // I need to return last inserted id here
    }
}

使用此插入方法,如何获取最后插入的id

在您的模型中,添加以下代码:

public function createMovie($input) {
    $id = $this->insertGetId(
        $input
    );
    return $id;
}

看看,如果有帮助的话。

如果表有autoincrementid字段,则尝试使用insertGetId函数,该函数将返回最后插入的行id

return DB::table('movie')->insertGetId(
    //pass an array parameter to this function
);

Laravel查询生成器参考

试试这个:

class Movie extends Model
{   
    public function createMovie($input) {
        $insertedId = $this->insert($input);   // I need to     return last inserted id here
       $theId = (int) $inserted->id;
        return $theId;
    }
}

这假设'$This->insert($input);'是您正在执行的查询。

为了给你一个想法,你可以直接从执行的查询中获得id:

$qry = $this->movie->createMovie($input)
$insertedId = $qry->id