2017-02-21 46 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

你想從blade view中調用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