Подтвердить что ты не робот

Как использовать черты - 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();
    }
}
4b9b3361

Ответ 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'));
    }
}