1

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

2 回答 2

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();
于 2013-08-29T10:51:38.610 回答
0

而不是这个:

$content = Content::getContentAll();

尝试这个:

$content = Content->getContentAll();
                  ^^

或将您的函数声明为static,如下所示:

public static function getContentAll(){

    return 'test';
}

更新:如果您不想拥有 a static function,则应实例化您的类以调用非静态函数:

$c = new Content();
$content = $c->getContentAll();
于 2013-08-29T10:29:20.783 回答