我想从我的数据库中获取数据,然后在我的模型中我希望在将数据传递给我的视图之前对数据执行一些 php 操作。
通常我会这样做来获取我的所有数据:
->with('content', Content::all());
但是我在我的模型中设置了一个名为 test 的函数:
public function test(){
//get and modify data here
}
我如何使用以下方法访问它:
->with
从我的控制器?
这是你要找的那个吗?
模型:
public static function foo($bar) {
return static::where('foo', '=', 'bar');
}
控制器:
->with('content', Foo::foo("test"));
您尝试做的事情并没有得到正确的解释,但无论如何我都会尝试回答。
据我了解,您想在模型使用之前对其进行一些数据转换。但是您在 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 可用于填充一些额外的值或对值进行一些额外的检查。
我希望我对你有所帮助。如果您没有找到正确的答案,请澄清您的问题,以便我可以为您提供更多帮助。