【发布时间】:2020-04-10 10:09:43
【问题描述】:
我是 Laravel 的新手,我正在开发 Laravel 4。我正在尝试在 docker 上迁移到 Laravel 6,我已经完成了基本设置,并且 Laravel 项目已经启动。
我在模型文件夹中创建了一个表和一个相应的 Eloquent 模型。我能够读取控制器中的数据。
namespace App\Http\Controllers;
use mysql_xdevapi\Exception;
use App\Models\Card;
class welcomeController {
public function show() {
try {
$cards = Card::all();
} catch (\Exception $e) {
die("Could not connect - " . $e );
}
print_r($cards); exit;
}
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Card extends Model
{
}
在旧版本的 Laravel 项目中,'Card::all()' 在不使用 USE 命令导入的情况下工作。
我知道命名空间很重要,但想知道它是如何工作的以及如何进行相同的复制。
【问题讨论】:
-
"在旧版本的 Laravel 项目中,'Card::all()' 在不使用 USE 命令的情况下工作" - 我使用的是旧版本的 Laravel ,我可以确认这是不是的情况。如果您不导入类,它将默认为当前类的命名空间,在本例中为
App\Http\Controllers,并且您没有类App\Http\Controllers\Card。虽然,Laravel 4 是一个非常旧的版本......也许是这样,但不管怎样。您需要在当前版本中正确导入它们。
标签: php laravel namespaces