php - 如何使用特征 - Laravel 5.2

标签 php laravel laravel-5.2 traits

我是 Traits 的新手,但我的函数中有很多重复的代码,我想使用 Traits 使代码不那么困惑。我在我的 Http 目录中创建了一个 Traits 目录,其中包含一个名为 BrandsTrait.php 的 Trait。它所做的只是呼吁所有品牌。但是当我尝试在我的产品 Controller 中调用 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'));
    }
}

它给我一个错误,提示 Method [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();
    }
}

最佳答案

考虑一下特性,例如在不同的地方定义你的类的一部分,它可以被许多类共享。通过在你的类中放置 use BrandsTrait 它有那个部分。

你要写的是

$brands = $this->brandsAll();

这是你的 trait 中方法的名称。

另外 - 不要忘记在您的 brandsAll 方法中添加一个返回值!

关于php - 如何使用特征 - Laravel 5.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36657629/

相关文章:

php - 向 crontab 传递一个变量并从 PHP 读取它?

php - 覆盖子包中的 Doctrine Mappgins

laravel - 在 Laravel 中将数据从 SQL 记录到 Redis

php - 在 where 子句中使用日期时,Laravel Eloquent 返回空

laravel - 了解 Laravel 5.2 上的队列和调度器

php - 使用 PHP 和 RegEX 返回多个匹配项,但仅直到模式第一次出现为止

javascript - 如何将ajax代码转换为php

laravel - 创建新字段的迁移时,将数据从一个字段复制到另一个字段的最佳方法是什么?

Laravel Vue 语言翻译

php - 如何使用 Laravel Eloquent 将多条记录插入数据库