gpt4 book ai didi

php - 如何在没有命名空间的情况下加载 Laravel 6 模型类

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

我是 Laravel 的新手,我正在研究 Laravel 4。我正在尝试在 docker 上迁移到 Laravel 6,我已经完成了基本设置并且 Laravel 项目已经启动。

我在模型文件夹中创建了一个表和一个相应的 Eloquent 模型。我能够读取 Controller 中的数据。

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 命令导入它的情况下工作。

我知道命名空间很重要,但想知道它是如何工作的以及如何进行复制。

最佳答案

我不知道你为什么要放弃使用命名空间,如果你不想使用 namespaces对于您的模型,编辑您的 composer.json像下面

"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories",
"models"
]
},


在根目录中创建一个目录并添加一个新文件,即“models/Card.php”。

下面应该是你的 Card.php的内容

<?php 

use \Illuminate\Database\Eloquent\Model;

class Card extends Model {

//database table here
protected $table = "cards";

//Fillables
protected $fillable = [];

}


在您的 Controller 中 WelcomeController
<?php

namespace App\Http\Controllers;

use mysql_xdevapi\Exception;

class welcomeController {
public function show() {
try {
$cards = \Card::all();
} catch (\Exception $e) {
die("Could not connect - " . $e );
}

print_r($cards); exit;
}
}


不要忘记卡模型中的正斜杠,即 '\Card::all()'

确保移动您的 models app外的文件夹目录,请注意这不是 php最佳实践

关于php - 如何在没有命名空间的情况下加载 Laravel 6 模型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59382152/

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