2014-03-27 86 views
0

我試圖將表名傳遞給我的模型,因爲模型在兩個表上運行,但具有相同的方法。在模型中設置表名稱?

我這樣做,像這樣:

$this->model = new Emotions(array('section' => 'red')); 

和模型我設置表所示:

public function __construct($attributes = array(), $exists = false){ 

    parent::__construct($attributes, $exists); 
    $this->table = $attributes['section']; 
} 

但我得到的錯誤:

Undefined index: section 

任何想法哪裏我錯了?

+0

奇怪。我測試過了,你的代碼工作正常。你有沒有試過傳遞一個非關聯數組來查看是否有效?傳遞數組('red')並查看是否可以將它作爲屬性[0]訪問。使用不同的字符集有什麼改變嗎? – tliokos

+0

否 - 未定義偏移量:0 – panthro

+0

問題是,我可以var_dump出$ attributes ['section']並給出正確的輸出,只有當我嘗試設置$ table時纔會失敗。 – panthro

回答

0

是的,我明白了,這個類可能運行兩次。

請試試這個。

public function __construct($attributes = array(), $exists = false){ 

    parent::__construct($attributes, $exists); 

    if(isset($attributes['section'])) { 
     $this->table = $attributes['section']; 
    } 
} 

我個人的建議

<?php 

class Emotions extends Eloquent 
{ 
    public function setTableName($name) 
    { 
     $this->table = $name; 
     return $this; 
    } 
} 

而且你可以使用這樣

$emotion = new Emotions(array('foo' => 'bar')) 
    ->setTableName('blabla') 
    ->save();