2016-06-08 116 views
0

假設一個類的方法我有這樣的代碼:不能調用laravel控制器類

class UserController extends Controller 
{ 
    protected $test; 

    public function __construct() 
    { 
     $this->test = new Test(); 

    } 

    // first call this func 
    public function add_name() 
    { 
     $this->test->add_name('name1') 
     return $this->test->get_name(); 
    } 

    // then this one 
    public function show_name() 
    { 
     return $this->test->get_name(); 
    } 

} 

class Test 
{ 
    protected $name; 

    public function get_name() 
    { 
     return $this->name; 
    } 

    public function add_name($name) 
    { 
     $this->name = $name; 
    } 
} 

所以,當我打電話SHOW_NAME在UserController(第一類)add_name()後()函數,返回任何結果。我的代碼問題是什麼? (當調用add_name()函數時,它正常工作)

+1

你是如何具體地調用這些函數?給我們一個你的用例的例子。現在我們只有兩個班。 – Psyco430404

+0

如何在'UserController'類中調用'show_name'函數? – Trix

+0

在你的'add_name'函數中只返回'$ this-> test-> add_name()' – aldrin27

回答

0

在Laravel中,在Controller文件中編寫單獨的類不是好習慣。您必須在app/Classes目錄中創建一個單獨的類文件。比如你的班級Class_Test.php在app/class裏面。在您的Controller文件中,頂部需要包含類的名稱空間。你的控制器功能應該是這樣的。

使用App \ Classes \ Class_Test;

類UserController的擴展控制器 {

public function add_name() 
{ 
    //call the class function 
    Class_Test::add_name('name1'); 
} 

// then this one 
public function show_name() 
{ 
    Class_Test::get_name(); 
} 

}

希望這幫助你。

+0

謝謝。這很有幫助 – Alireza