不能在控制台脚本中使用后端的 Yii2 模型


Cannot use Yii2 model from backend in console script

我在 Yii2 高级安装中有一个控制台脚本,从中我可以成功地使用"common''models''modelName"下的多个模型,但是当我尝试使用"后端''models''db''AuthAssignment"下的模型时,我收到以下错误:

异常"yii''base''UnknownClassException",消息"无法在文件中找到'backend''models''db''AuthAssignment':/var/www/html/mvu/backend/models/db/AuthAssignment.php。命名空间不见了?

此模型文件按如下方式启动:

<?php
namespace app'models'db;
use Yii;
class AuthAssignment extends 'yii'db'ActiveRecord {

来自控制台''控制器文件的调用如下所示:

<?php
namespace console'controllers;
use Yii;
use yii'console'Controller;
use backend'models'db'AuthAssignment;
use common'models'CourseLessons;
use common'models'Courses;
use common'models'Customer;
use common'models'Users;
class MijnvuController extends Controller {

错误在这里意味着什么命名空间以及在哪里包含它?

事实证明,我需要在"前端''模型''db''AuthAssignment"下生成特定模型的副本,因为前端和后端在运行不同的数据库时具有相似的功能。

相应地调用它,它有效:

<?php
namespace console'controllers;
use Yii;
use yii'console'Controller;
use backend'models'db'AuthAssignment;
use common'models'CourseLessons;
use common'models'Courses;
use common'models'Customer;
use common'models'Users;
class MijnvuController extends Controller {

不能直接从后端目录扩展/使用模型。

要根据您的要求使用模型,您需要在控制台/模型目录下添加这些模型类。

然后在控制台控制器中使用如下:

use app/models/Classname;

尝试此链接以获取更多详细信息 http://latcoding.com/2015/08/27/run-controller-yii2-via-console/