我是Traits的新手,但是我有很多代碼在我的函數中重複使用,我想使用Traits使代碼更簡潔。我在我的Http
目錄中創建了一個名爲BrandsTrait.php
的Traits
目錄。它所要做的就是呼籲所有品牌。但是,當我嘗試調用BrandsTrait對我的產品控制器,就像這樣:如何使用Traits - Laravel 5.2
use App\Http\Traits\BrandsTrait;
class ProductsController extends Controller {
use BrandsTrait;
public function addProduct() {
//$brands = Brand::all();
$brands = $this->BrandsTrait();
return view('admin.product.add', compact('brands'));
}
}
它給了我一個錯誤說方法[BrandsTrait]不存在。我想要初始化一些東西,或者以不同的方式調用它?
這是我喜歡的,可以由很多類共享一個不同的地方定義類的部分性狀BrandsTrait.php
<?php
namespace App\Http\Traits;
use App\Brand;
trait BrandsTrait {
public function brandsAll() {
// Get all the brands from the Brands Table.
Brand::all();
}
}
哦哇,沒有注意到,我的錯誤。謝謝。 – David
我可以通過繼承來實現這一點,還有什麼提供了這些特性? –
PHP不支持多個繼承,因此,只允許您擴展一個類。然而,隨着性狀的不同,你可以使用盡可能多的。 – maddockst