2013-08-21 299 views
0

我想從我的數據庫中獲取數據,然後在我的模型中,我希望在將數據傳遞給我的視圖之前,對數據做一些php的操作。從控制器訪問模型?

通常我會做到這一點讓我所有的數據:

->with('content', Content::all()); 

但我已經建立了在我的模型名爲test的函數:

public function test(){ 

//get and modify data here 
} 

我如何可以訪問此使用:

->with 

從我的控制器?

+2

如果你做這個 '測試' 功能的靜態,將它與你的工作? ,因爲它與我一起工作,但我沒有得到你的例子.. –

+0

你能提供一個更深入的描述你想要做什麼?也許'用()'不是最好的辦法。 – vFragosop

回答

0

你所要做的並不是真正解釋正確,但我會盡力回答。

從我所瞭解的情況來看,您希望在模型使用前進行一些數據轉換。但是你在test()函數中的註釋說你想要獲取和修改數據。

在laravel,用於獲取和修改數據的功能是分開的:

爲獲得數據,則可以定義一個查詢範圍(http://four.laravel.com/docs/eloquent#query-scopes)。查詢範圍通常是用於向現有查詢添加一些參數的簡稱。

對於在從模型中讀取數據之前或在將模型分配到模型之前修改數據,Eloquent提供了一個稱爲增變器(http://four.laravel.com/docs/eloquent#accessors-and-mutators)的系統。增變器是在讀取或分配字段值時調用的方法。通常情況下,將php類型轉換爲數據庫類型(例如,在保存時將數組轉換爲json,然後將json轉換爲讀取數組)。一個增變器可以用來填充一些額外的值或對值進行一些額外的檢查。

我希望我已經幫了你一下。如果你沒有找到它是一個正確的答案,請澄清你的問題,所以我可以幫助你多一點。

+0

謝謝,這有幫助。我想知道如何從控制器調用模型?並調用我在模型中寫的方法? – panthro

+0

閱讀文檔怎麼樣? http://four.laravel.com/docs/eloquent#basic-usage – Atrakeur

1

這是你正在尋找的?

型號:

public static function foo($bar) { 
    return static::where('foo', '=', 'bar'); 
} 

控制器:

->with('content', Foo::foo("test")); 
相關問題