【问题标题】:Class 'App\Http\Controllers\Model' not found找不到类“App\Http\Controllers\Model”
【发布时间】:2018-02-25 23:31:25
【问题描述】:

我想在视图中使用模型函数

我的控制器功能代码:

 $model = Tickets::find(1);
 View::make('view')->withModel($model);

 return view('index.search', ['tickets' => $result]);

我的型号代码:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Tickets extends Model
{
    public function someFunction() {
        echo 'hello world!';
    }
}

我的查看代码:

{{ $model->someFunction() }}

【问题讨论】:

  • 导入App\Model

标签: php laravel laravel-5 namespaces


【解决方案1】:

你需要像这样导入你的模型:

use App\Tickets;

就在命名空间之后,所以它应该看起来像这样:

<?php

namespace App\Http\Controllers;

use App\Tickets;

【讨论】:

  • 对不起,这个不行(还是写这样的类不存在
  • @Ostap34PHP 好吧,但我假设您不存在 Model 类。你不应该改用Ticket 类吗?请查看编辑后的答案
【解决方案2】:

要让它工作,你要么必须使用完整的命名空间:

$model = \App\Tickets::find(1);

或者在控制器顶部添加use 语句:

use App\Tickets;

并加载模型:

$model = Tickets::find(1);

【讨论】:

  • 对不起,这个不行(还是写这样的类不存在
【解决方案3】:

你的模型应该是

<?php

namespace App;
use Illuminate\Database\Eloquent\Model;

class Tickets extends Model
{
    public function someFunction() {
        echo 'hello world!';
    }
}

控制器功能应该是

$model = Tickets::find(1);
 View::make('view')->withModel($model);

 return view('index.search', ['tickets' => $result]);

【讨论】:

  • 正如我从之前的答案中得知的,必须添加到模型中:use app\tickets;
  • 其实你不必在Model中添加useapp\tickets;,你必须将它添加到控制器中。当您将类门票扩展到模型时,它会自动获取模型。其次,你在课堂上写复数,这不是一个好习惯。类名的第一个字母也应该是大写
【解决方案4】:

这应该可以解决问题:

use App\Models\Ticket;

对于 laravel 7:

use App\Tickets;

对于 laravel 8:

use App\Models\Ticket;

【讨论】:

  • 您刚刚复制了接受的答案,没有格式化代码。
猜你喜欢
  • 2020-02-02
  • 1970-01-01
  • 2016-06-02
  • 2016-05-15
  • 2018-05-02
  • 2017-07-12
  • 2019-04-14
  • 2015-12-18
  • 2017-11-29
相关资源
最近更新 更多