2015-12-03 41 views
1

我從Model插入數據庫值,這裏是代碼:如何從插入方法laravel得到最後插入的ID 5.1

控制器:

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?

+0

顯示您的插入功能代碼.. –

+0

我打電話給laravel插入功能照亮 –

回答

1

在您的模型中,添加下面的代碼:

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

    return $id; 
} 

看,如果有幫助。

+0

感謝您的解決方案,它的工作原理:) –

+0

不客氣。 –

0

試試這個:

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; 
    } 

} 

這想那是$這個 - >插入($輸入);「是您正在執行的查詢。

爲了讓你的想法,你得到的ID直接氟里昂您執行的查詢:

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

如果你的表有autoincrementid字段,則嘗試使用它會返回最後插入的行ID

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

Laravel Query Builder Reference