我想从我的数据库中获取数据,然后在我的模型中,我希望在将数据传递给我的视图之前对数据执行一些php。
通常我会这样做以获取我的所有数据:
->with('content', Content::all());
但我在我的模型中设置了一个名为test的函数:
public function test(){
//get and modify data here
}
如何使用以下方式访问此内容:
->with
来自我的控制器?
答案 0 :(得分:1)
这是你要找的人吗?
型号:
public static function foo($bar) {
return static::where('foo', '=', 'bar');
}
控制器:
->with('content', Foo::foo("test"));
答案 1 :(得分:0)
你要做的事情并没有得到正确的解释,但无论如何我都会尝试回答。
据我所知,您希望在使用之前在模型中进行一些数据转换。但是你在test()函数中的注释表明你想要获取和修改数据。
在laravel中,获取和修改数据的功能是分开的:
要获取数据,您可以定义查询范围(http://four.laravel.com/docs/eloquent#query-scopes)。查询范围通常是将一些参数添加到现有查询的简称。
为了在从模型中读取数据之前或在将数据分配给模型之前修改数据,Eloquent提供了一个名为mutators的系统(http://four.laravel.com/docs/eloquent#accessors-and-mutators)。 mutator是在读取或为字段赋值时调用的方法。通常将php类型转换为数据库类型(例如,在保存时将数组转换为json,然后在读取时将json转换为数组)。可以使用mutator来填充一些额外的值或对值进行一些额外的检查。
我希望我能帮助你一点。如果您没有找到正确的答案,请澄清您的问题,以便我可以帮助您一点。