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';
}

UPDATE : が必要ない場合は、非静的関数を呼び出すためにクラスをインスタンス化static functionする必要があります。

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