Как использовать черты - Laravel 5.2
Я новичок в чертах, но у меня много кода, который повторяется в моих функциях, и я хочу использовать Черты, чтобы сделать код менее грязным. Я создал каталог Traits
в моем каталоге Http
с Trait с именем BrandsTrait.php
. И все, что он делает, это призыв ко всем Брендам. Но когда я пытаюсь вызвать BrandsTrait в моем контроллере продуктов, вот так:
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();
}
}
Ответы
Ответ 1
Подумайте о таких чертах, как определение раздела вашего класса в другом месте, которое может использоваться многими классами. Поместив use BrandsTrait
в свой класс, он имеет этот раздел.
То, что вы хотите написать,
$brands = $this->brandsAll();
Это имя метода в вашей характеристике.
Также - не забудьте добавить возврат к вашему методу brandsAll
!
Ответ 2
use App\Http\Traits\BrandsTrait;
class ProductsController extends Controller {
use BrandsTrait;
public function addProduct() {
//$brands = Brand::all();
$brands = $this->brandsAll();
return view('admin.product.add', compact('brands'));
}
}