我想从我的数据库中获取数据,然后在我的模型中,我希望在将数据传递给我的视图之前,对数据做一些php的操作。从控制器访问模型?
通常我会做到这一点让我所有的数据:
->with('content', Content::all());
但我已经建立了在我的模型名为test的函数:
public function test(){
//get and modify data here
}
我如何可以访问此使用:
->with
从我的控制器?
我想从我的数据库中获取数据,然后在我的模型中,我希望在将数据传递给我的视图之前,对数据做一些php的操作。从控制器访问模型?
通常我会做到这一点让我所有的数据:
->with('content', Content::all());
但我已经建立了在我的模型名为test的函数:
public function test(){
//get and modify data here
}
我如何可以访问此使用:
->with
从我的控制器?
你所要做的并不是真正解释正确,但我会尽力回答。
从我所了解的情况来看,您希望在模型使用前进行一些数据转换。但是你在test()函数中的注释说你想要获取和修改数据。
在laravel,用于获取和修改数据的功能是分开的:
为获得数据,则可以定义一个查询范围(http://four.laravel.com/docs/eloquent#query-scopes)。查询范围通常是用于向现有查询添加一些参数的简称。
对于在从模型中读取数据之前或在将模型分配到模型之前修改数据,Eloquent提供了一个称为增变器(http://four.laravel.com/docs/eloquent#accessors-and-mutators)的系统。增变器是在读取或分配字段值时调用的方法。通常情况下,将php类型转换为数据库类型(例如,在保存时将数组转换为json,然后将json转换为读取数组)。一个增变器可以用来填充一些额外的值或对值进行一些额外的检查。
我希望我已经帮了你一下。如果你没有找到它是一个正确的答案,请澄清你的问题,所以我可以帮助你多一点。
这是你正在寻找的?
型号:
public static function foo($bar) {
return static::where('foo', '=', 'bar');
}
控制器:
->with('content', Foo::foo("test"));
如果你做这个 '测试' 功能的静态,将它与你的工作? ,因为它与我一起工作,但我没有得到你的例子.. –
你能提供一个更深入的描述你想要做什么?也许'用()'不是最好的办法。 – vFragosop