AC中Bussnes逻辑的正确方法

时间:2017-05-31 16:02:29

标签: php oop yii2

我是yii的新人。我对模型中的Active记录和bussnes逻辑有疑问。 我有模特和控制器:

namespace app\models;

use yii\db\ActiveRecord;

class Photos extends ActiveRecord 
{

}

控制器:

namespace app\controllers;

use Yii;
use app\models\Photos;

class PhotosController extends Controller
{
    public function actionIndex()
    {
       $photos = Photos::find()
            ->where(['userid' => Yii::$app->user->identity->id])
            ->all();
       return $this->render('index', ['photos' => $photos]);
    }
}

我想以其他方式做到这一点:

namespace app\models;

use yii\db\ActiveRecord;

class Photos extends ActiveRecord 
{
    public function findOneById($id) 
    {
        return Photos::findOne($id);
    }   
}

和控制器:

namespace app\controllers;
use Yii;
use app\models\Photos;

class PhotosController extends Controller
{
    public function actionIndex()
    {
        $photos = Photos::findByUserId(Yii::$app->user->identity->id);
        return $this->render('index', ['photos' => $photos]);
    }
}

这样做的正确方法是什么? 我是关于胖模型和微小的控制器。

1 个答案:

答案 0 :(得分:1)

第二种选择更为正确,控制器应该很小,所有业务逻辑都应该在模型或功能类中呈现