我有以下代码:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Enemy extends Model
{
// ...
static function fight($id)
{
if(Enemy::calcDist($id))
{
$model = Enemy::find($id);
if($model->status == 1)
{
$model->status = 2;
$model->save();
}
}
}
}
当我尝试在php修补程序中执行App\Enemy::fight(1)
时,它显示错误:
"Class 'App\App\Enemy' not found"
。
我尝试"calcDist($id)"
,"self::calcDist($id)"
,find($id)
函数,但没有结果。
我如何解决这个问题?
编辑:我发现了问题;该错误来自代码的另一部分......
答案 0 :(得分:1)
当您在namespace App
时,您不需要在通话中使用App\Enemy
。
只需使用Enemy::fight(1)
,或使用绝对命名空间\App\Enemy::fight(1)
当您按名称使用静态类时,引擎会将类搜索到当前名称空间中。如果没有给出命名空间,则它使用命名空间“\”。
namespace App;
Enemy::fight(1); // \App\Enemy::fight(1) ok
App\Enemy::fight(1); // \App\App\Enemy::fight(1) wrong