2016-08-20 18 views
-2

我想知道方法鏈。最近我在Laravel中使用了方法鏈,它工作正常。檢查調用是否是方法鏈PHP

我的模型的名稱是帖子,所以當我想從帖子中選擇所有名稱時,它會返回所有名稱。

帖子:: select('name');

而當我在下面的函數調用獲取一個記錄它只給出一個記錄。

帖子:: select(name) - > first();

我想在自己班上實現相同的場景。我有一類圖片上傳。

如果我只上傳一個文件,這將是

圖片上傳::( 'PIC')

但是,如果我上傳圖片並調整其大小和水印。

Image :: upload('pic') - > resize(200,300) - > addwatermark('image/logo.png');

+0

的可能的複製(http://stackoverflow.com/questions/3724112/php-method-chaining) – Bert

+0

的問題不是一樣[PHP方法鏈接?]!首先閱讀,然後評論和投票。謝謝! –

+0

您的帖子中甚至沒有問題。我看到「我想在自己班上實現相同的場景」,如何做到這一點在我給出的鏈接中得到了回答。 – Bert

回答

0

基本上你的方法必須做到:「return $ this;」一旦治療完成:

public function upload(){ 
    //do something 

    return $this; 
} 

public function resize(){ 
    //do something 

    return $this; 
} 

public function watermark(){ 
    //do something 

    return $this; 
} 
+0

如果我只需要上傳文件並返回文件名,那麼我無法返回該類的對象。 –

+0

您可以完成整個治療鏈方法,然後在完成後調用getFileName方法。 – vincenth

+0

但是在laravel中,我們不需要調用任何獲取文件名的函數。我已經考慮過了,整個邏輯都在我心中。但問題是框架如何管理這個問題。 –