Ela*_*uwa 1 php oop laravel laravel-5 laravel-5.5
我正试图通过课程访问模型.我试图在Laravel 5.5安装上完成这项工作.文件夹结构是默认的,除了我在App/Libraries中有一个文件夹来保存我的自定义类.
我的问题是当我试图通过我的班级访问模型时,我得到以下错误.可能是命名空间问题,但我似乎无法找到它.它正在寻找错误的地方.
错误是
找不到"App\Libraries\App\AccountsModel"类
以下是我的代码.
应用程序/库/ Account.php
<?php
namespace App\Libraries;
use App\AccountsModel;
class Account {
public $accountNum;
public $accountDescription;
public $isMainAccount;
public $parentAccount;
public $createTime;
public $updatedTime;
public function getInfo($accountNum)
{
$account = App\AccountsModel::where('accountNumber', $accountNum)->take(1)->get(); //Error coming up due to this line
//return $account;
//return $this;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
应用程序\ AccountsModel.php
<?php
namespace App\AccountsModel;
use Illuminate\Database\Eloquent\Model;
class AccountsModel extends Model
{
protected $table = 'accounts';
}
Run Code Online (Sandbox Code Playgroud)
应用程序/ HTTP /控制器/ AccountsController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Libraries\Account;
class AccountsController extends Controller
{
public function create()
{
$account = new Account;
var_dump($account->getInfo("1-1000"));
}
}
Run Code Online (Sandbox Code Playgroud)
我在composer.json上自动加载模型,如下所示.以下任何输入也表示赞赏.我尝试在模型中的构造上回显类名,没有回声,所以我猜我也错误地自动加载了这个.
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/",
"AccountsModel\\" : "app/AccountsModel.php"
}
},
Run Code Online (Sandbox Code Playgroud)
最终,当我收到错误时,我正试图通过我的自定义Account类访问模型.任何帮助是极大的赞赏.
该课程AccountsModel已包含在该use部分中.所以,你可以用AccountsModel而不是App\AccountsModel.请参阅下面的更新代码
<?php
namespace App\Libraries;
use App\AccountsModel;
class Account {
public $accountNum;
public $accountDescription;
public $isMainAccount;
public $parentAccount;
public $createTime;
public $updatedTime;
public function getInfo($accountNum)
{
$account = AccountsModel::where('accountNumber', $accountNum)->take(1)->get(); // this line updated
}
}
?>
Run Code Online (Sandbox Code Playgroud)
将模型更新为此.只是namespace App;
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class AccountsModel extends Model
{
protected $table = 'accounts';
}
Run Code Online (Sandbox Code Playgroud)
此外,在composer.json中不需要这个,因为它AccountModel是.的一部分App.
"AccountsModel\\" : "app/AccountsModel.php"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |