从控制器访问模型?

时间:2013-08-21 16:12:48

标签: laravel laravel-4

我想从我的数据库中获取数据,然后在我的模型中,我希望在将数据传递给我的视图之前对数据执行一些php。

通常我会这样做以获取我的所有数据:

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

但我在我的模型中设置了一个名为test的函数:

public function test(){

 //get and modify data here
}

如何使用以下方式访问此内容:

->with

来自我的控制器?

2 个答案:

答案 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来填充一些额外的值或对值进行一些额外的检查。

我希望我能帮助你一点。如果您没有找到正确的答案,请澄清您的问题,以便我可以帮助您一点。