【发布时间】:2021-12-31 16:27:42
【问题描述】:
我有这个模型类(文件名为 Audit.php):
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
abstract class AuditStatus
{
const UNKNOWN = "UNKNOWN";
const ERROR = "ERROR";
const WARNING = "WARNING";
const MSG = "MESSAGE";
const EXCHANGE_UPDATE = "EXCHANGE_UPDATE";
const PRICE_UPDATE = "PRICE_UPDATE";
}
class AuditCodes extends AuditStatus
{
}
class Audit extends Model
{
use HasFactory;
public $timestamps = false;
protected $fillable = ['action', 'msg'];
public static function Add($action, $msg){
(new static)::insert(['action'=>$action, 'msg' => $msg]);
}
}
我正在尝试像这样创建一个新命令:
<?php
namespace App\Console\Commands;
use App\Models\AuditCodes;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class PriceCreate extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'price:create';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Create prices';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
dd(AuditCodes::MSG);
}
}
但是当我运行命令时,编译器会抛出这个错误:
Error
Class "App\Console\Commands\App\Models\Audit\Audit_Codes" not found
at C:\xampp\htdocs\bintest\app\Console\Commands\PriceCreate.php:46
谁能帮助我如何声明我的班级?
谢谢!!!
【问题讨论】:
-
添加反斜杠并修复命名空间,如
dd(\App\Models\Audit_Codes::MSG)将修复该问题,或通过导入dd(Audit_Codes::MSG)引用。旁注,型号名称是 StudlyCase 和单数,所以Audit_Codes应该是AuditCode。 -
如果我添加双反斜杠错误是找不到类“App\Models\Audit\Audit_Codes”,如果我只使用一个反斜杠错误是找不到类“App\Models\Audit\Audit_Codes”,并且使用“use”指令的错误是相同的:(
-
抱歉,不得不多次编辑评论(重新阅读您的问题)。现在应该是正确的???一个反斜杠,你有一个额外的
\Audit,它不属于namespace App\Models;。立即尝试 -
谢谢!!将课程分开就可以了.. :)
-
是的,我也很惊讶它没有起作用,我的目标是对所有公共代码进行分组。我也得多挖一点
标签: php laravel namespaces laravel-8