2017-09-23 56 views
-1

我使用laravel 5,我有模型類laravel在父類getTable

class Apartment extends Property 
{ 
    protected $table = 'apartments'; 
} 

和父類

abstract class Property extends Model 
{ 

    protected $table = ''; 

    public function doSomthing() 
    { 
     echo $table = $this->getTable(); //$this->table 
    } 
} 

我怎麼能讀$表(公寓),或在父母拿到表名class

$ this-> getTable(); $ this-> table和self :: $ table不起作用

+0

除了不是「模型」這個事實,var_dump($ this)是什麼? –

+0

<<在對象上下文中不使用$ this >> – Fat7i

+0

那麼..這將表明您將該代碼放在錯誤的部分。你可能應該從理解開始,['this this'是什麼](https://stackoverflow.com/a/1523484/727208)。 –

回答

-1
class Apartment extends Property 
{ 
    protected $table = 'apartments'; 

    public function __construct() 
    { 
     parent::__construct($this->table); 
    } 
} 

abstract class Property extends Model 
{ 

    protected $table = ''; 

    function __construct($var) 
    { 
     $this->table = $var; //$this->table should be 'apartments' 

    } 

} 
+0

非靜態方法App \ Property :: doSomthing()不應該被靜態調用 – Fat7i

+0

和我添加「靜態」到(公共靜態函數doSomething)我得到<<當不在對象上下文中使用$ this >> – Fat7i

+0

1。可以像往常一樣調用doSomthing,像$ this-> doSomthing(); 2.如果doSomthing必須是一個靜態函數,請嘗試將$ this-> table作爲參數傳遞給doSomthing($ table){...},您不能在靜態函數中使用$ this – vnt