2013-08-21 150 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")); 
相关问题