2013-08-21 2 views
0

Я хочу получить данные из своей базы данных, а затем в моей модели, я хочу сделать некоторые данные PHP для данных, прежде чем передавать их на мой взгляд.Доступ к модели с контроллера?

Обычно я хотел бы сделать это, чтобы получить все мои данные:

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

Но я настроил функцию в моей модели под названием тест:

public function test(){ 

//get and modify data here 
} 

Как я могу получить доступ к этому с помощью:

->with 

с моего контроллера?

+2

Если вы сделали эту функцию 'тест' статична, она будет работать с вами? , cuz его работа со мной, но я не собираюсь ура пример. –

+0

Можете ли вы, пожалуйста, дать более подробное описание того, что вы пытаетесь сделать? Может быть, 'with()' не лучший способ сделать это вообще. – vFragosop

ответ

0

То, что вы пытаетесь сделать, на самом деле не объяснено правильно, но я все равно попытаюсь ответить.

Из чего я понимаю, вы хотите сделать некоторые преобразования данных в модели до ее использования. Но ваш комментарий в функции test() говорит, что вы хотите ПОЛУЧИТЬ и изменить данные.

В Laravel, функции для получения и модификации данных разделены:

Для получения данных, вы можете определить область запроса (http://four.laravel.com/docs/eloquent#query-scopes). Область запроса обычно является короткой и для добавления некоторых параметров в существующий запрос.

Для изменения данных перед его чтением из модели или до того, как он будет представлен модели, Eloquent предоставит систему, называемую мутатором (http://four.laravel.com/docs/eloquent#accessors-and-mutators). Мутатор - это метод, называемый при чтении или определении значения для поля. Обычно нужно преобразовать тип php в тип базы данных (например, массив для json on save, затем 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")); 
Смежные вопросы