如何使用laravel4从控制器访问模型?

时间:2013-08-29 10:23:34

标签: php laravel laravel-4

如何使用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.

2 个答案:

答案 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();