如何使用laravel4从控制器访问模型?
到目前为止,我有我的控制器:
<?php
class GatewayController extends BaseController {
public function getContentAll()
{
$content = Content::getContentAll();
return $content;
}
我的模特:
<?php
class Content extends Eloquent {
protected $table = '_content';
public function getContentAll(){
return 'test';
}
但我明白了:
Whoops, looks like something went wrong.
答案 0 :(得分:1)
首先,Eloquent处理模型集合的返回。您不需要自己处理。所以你的模型应该看起来像这样:
class Content extends Eloquent {
protected $table = '_content';
}
然后,您可以使用此功能简单地获取所有内容:
$content = Content::all();
编辑:
如果您想对模型中的数据进行处理,请尝试以下操作:
class Content extends Eloquent {
protected $table = '_content';
public function modifiedCollection()
{
$allContent = self::all();
$modifiedContent = array();
foreach ($allContent as $content) {
// do something to $content
$modifiedContent[] = $content;
}
return $modifiedContent;
}
}
这应该有效:
$content = Content::modifiedCollection();
答案 1 :(得分:0)
而不是:
$content = Content::getContentAll();
试试这个:
$content = Content->getContentAll();
^^
或者将您的函数声明为static
,如下所示:
public static function getContentAll(){
return 'test';
}
更新:如果您不想拥有static function
,则应实例化您的类以调用非静态函数:
$c = new Content();
$content = $c->getContentAll();