2017-02-21 5 views
3

私はビューからモデル関数を使用する方法は? - laravel 5.4

public function scopetest($query) 
    { 
return $query->pluck('name'); 
    } 
    } 

あるモデルクラスに機能を作り、私のコントローラのコードは

public function index() 
    { 
    $books = Book::all(); 

    return view('welcome',compact('books')); 

     } 

である私は私のビューファイルを書いたテスト()関数の結果を得るために

@foreach($books as $book) 

{{$book->test()}} 

@endforeach 

しかし、このページにアクセスすると、「名前」フィールド値が3回表示されます。なぜ3回ショー?モデル関数をビューから呼び出す方法は? &正しいプロセスは何ですか?親切にお手伝いくださいview result

+0

あなたがループしているために3回ある可能性がありますか? –

+0

ルーピング?しかしここで? – Masum

+0

ブレードビューからscopetest関数を呼び出したいですか? – sunilwananje

答えて

5

ビュー内でモデル関数を呼び出す方法は多数あります。

方法1:

ようなあなたのコントローラで表示するいくつかのモーダルを渡します。いくつかの関数を作成し、モーダルで

$model = Model::find(1); 
View::make('view')->withModel($model); 

public function someFunction() { 
    // do something 
    } 

ビューで、あなたがこの関数を直接呼び出すことができます次のとおりです。

{{$model->someFunction()}} 

方法2またはその他の方法:

あなたが好きなモデルで静的関数を行うことができます。

public static function someStaticFunction($par1, $par2) { 
    // do what you need 
} 

そして、あなたのビューであなたのように関数を直接モデル化することができます:それが表示されている

{{App\Model::someStaticFunction($par1,$par2)}} 
+0

tnx Sagar、それは – Masum

+0

@Masumを歓迎し、もしあなたのために解決策が働いているなら、あなたは他人を助けるために投票するかもしれません。 –

+0

私はあなたに投票したいと思います。投票オプションはどこにあるのかわかりません。 – Masum

0

範囲はscopeTest()(camelCase)である必要があります。

+0

scopeTest()に変更しましたが動作しませんでした – Masum

+0

私のターゲットはモデル関数にいくつかのクエリをビルドし、ブレードファイルから取得します。正しいプロセスは何ですか?あなたはどのようにそれを行う? – Masum

関連する問題