2016-07-23 50 views
0

這是我的代碼中的問題。我有這個模型。傳遞的參數是$uid=1$id=1。 但這是我的問題。當我打電話給create時,它將0和0作爲pid和uid的值插入。Laravel - 創建內部變量返回0

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Cart extends Model 
{ 

    protected $table = 'cart'; 
    protected $fillable = [ 
     'pid', 'uid' 
    ]; 

    public $uid=0; 
    public function __construct($uid) 
    { 
    $this->uid=$uid; 
    var_dump($this->uid); // int(1) array(2) { ["pid"]=> string(1) "1" ["uid"]=> int(1) } 
    } 

    public function add($id) 
    { 
    $cart = $this::create(['pid' => $id,'uid' => $this->uid]); 
    $cart->save(); 
    var_dump($id,$this->uid); //string(1) "1" int(1) 
    } 



} 

這是我的輸出視圖的var_dump

int(1) array(2) { ["pid"]=> string(1) "1" ["uid"]=> int(1) } string(1) "1" int(1) 

我是Laravel的初學者,我提到了laravel文檔,這對文檔沒有多大幫助。

回答

1

這些方法是不必要的,因爲模型已經有與數據庫交互的幕後方法,這就是ORM的內容。刪除已添加的兩種方法並將此邏輯添加到控制器。

,確保您$ cart-> ID

使用的命名空間,在您的控制器的第一

use App\Cart; 

現在在你的控制器方法

$cart = new Cart; 
$cart->uid = $request->uid; 
$cart->pid = $request->pid; 
$cart->save(); 

您可以取回車ID頂