2017-04-16 5 views
2

ファイルを正確に作成する場所、書き込む場所、およびその特性で宣言された関数の使用方法の例が必要です。私はLaravelフレームワーク5.4.18Laravel 5.4.18で形質を使用するには?

-Iを使用は枠組みの中で任意のフォルダを変更していない、それはどうもありがとうございましすでにから

をcorresponds-ところ、すべてがあります。

+1

形質はフレームワーク機能ではなく、言語機能です。だからhttp://php.net/manual/en/language.oop5.traits.phpはあなたが必要とするすべてのものでなければなりません。 –

+0

@MateuszSipはい私は知っています。しかし、どこにファイルを置くのですか? – emi

+0

あなたは[namespaces](http://php.net/manual/en/language.namespaces.php)を認識していますか? あなたの形質をインポートして使用するだけです。 –

答えて

6

私はBrandsTrait.php

と呼ばれる形質に私のHttpディレクトリにトレイトディレクトリを作成したいと、それを使用しています。ここ

use App\Http\Traits\BrandsTrait; 

class YourController extends Controller { 

    use BrandsTrait; 

    public function addProduct() { 

     //$brands = Brand::all(); 

     // $brands = $this->BrandsTrait(); // this is wrong 
     $brands = $this->brandsAll(); 
    } 
} 

は私のBrandsTrait.php

<?php 
namespace App\Http\Traits; 

use App\Brand; 

trait BrandsTrait { 
    public function brandsAll() { 
     // Get all the brands from the Brands Table. 
     $brands = Brand::all(); 

     return $brands; 
    } 
} 

注意です:普通の関数のように、ある特定のnamespaceに書かれているように、traitsも同様

+0

Controller.php行でBadMethodCallExceptionが発生する82: メソッド[BrandsTrait]が存在しません。 – emi

+0

更新された行のコメントを確認してください –

+2

これは特性の意図された使用ではありません。ここで使用されている方法では、これは 'リポジトリインタフェース 'として最もよく使われます。形質は、複数の異なるコントローラ/モデル間で再利用されることを意図したものでなければなりません。 – Ohgodwhy

関連する問題