gpt4 book ai didi

php - 如何解决 php tinker 中的命名空间问题?

转载 作者:行者123 更新时间:2023-12-04 16:55:43 26 4
gpt4 key购买 nike

我有以下代码:

<?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();
}
}
}
}

当我尝试做 App\Enemy::fight(1)在 php tinker 中,它显示错误:
"Class 'App\App\Enemy' not found" .

我试过 "calcDist($id)" , 与 "self::calcDist($id)" ,也在 find($id)功能,但没有结果。

我该如何解决这个问题?

编辑:我发现了问题;该错误来自代码的另一部分......

最佳答案

当您在 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

关于php - 如何解决 php tinker 中的命名空间问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48428519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com