Laravel 5 中未找到用户类

2023-12-04

我有以下问题。 我刚刚从 4.2 升级到 Laravel 5,但是我首先复制到新的 Controllers 文件夹的 UserController 不起作用。

它总是告诉我它不适合用户模型。

当我复制它时,我的代码如下所示:

用户控制器.php

<?php

use App\Transformer\UserTransformer;

class UserController extends ApiController
{
public function index()
{
    App::abort(403, 'This is not allowed');
}

public function show($id)
{   
    $user = User::find($id);
    if($user->access_token!=Input::get('access_token')){
        return "It is not allowed to access data from other users";
    }else{
        $result = $this->respondWithItem($user, new UserTransformer);
        return $result;
    }
}

public function getID()
{   
    $user = User::where('email', '=', Input::get('email'))->first();
    if($user->access_token!=Input::get('access_token')){
        return "It is not allowed to access data from other users";
    }else{
        $result = $user->id;
        return $result;
    }
}

public function register()
{
    $user = new User;
    $name = Input::get('name');
    $email = Input::get('email');
    $password = Input::get('password');

    if($name != null AND $email != null AND $password != null){
        if(User::where('email', '=', Input::get('email'))->exists()){
            return "A user with this email already exists";
        }else{
            $user->name = $name;
            $user->email = $email;
            $user->password = $password;
            $user->save();
            return "Success";
        }
    }else{
        return "All fields are required";
    }
}

public function login(){
    $user = User::where('email', '=', Input::get('email'))->first();
    if($user != null){
        if($user->password==Input::get('password')){
            $then =$user->time;
            $now = strtotime("now");
            $thenTimestamp = strtotime($then);
            $difference = $now - $thenTimestamp;
            if((empty($user->date) AND empty($user->time))OR($difference >=10800)OR($user->date!=date('d.m.Y'))){
                $user->access_token=self::getGUID();
                $timestamp = time();
                $user->date=date("d.m.Y",$timestamp);
                $timestamp = strtotime("now");
                $user->time=date('H:i', $timestamp);
                $user->save();
            }
            return $user->access_token;
        }
        else
            return "Wrong username or password";
    }else
        return "Wrong username or password";
}

function getGUID(){
    if (function_exists('com_create_guid')){
        return com_create_guid();
    }else{
        mt_srand((double)microtime()*100000);
        $charid = strtoupper(md5(uniqid(rand(), true)));
        $hyphen = chr(45);
        $uuid = 
            substr($charid, 0, 8).$hyphen
            .substr($charid, 8, 4).$hyphen
            .substr($charid,12, 4).$hyphen
            .substr($charid,16, 4).$hyphen
            .substr($charid,20,12);
        return $uuid;
    }
}

public function check(){
    $user = User::where('access_token', '=', Input::get('access_token'))->first();
    if($user != null){

    }else
    return "no session";
}
}

我没有命名空间控制器,用户模型只是开箱即用。 UserTransformer 确实包含用户模型。这里是原件:

<?php

use App\User;
use League\Fractal\TransformerAbstract;

class UserTransformer extends TransformerAbstract
{
/**
 * Turn this item object into a generic array
 *
 * @return array
 */
public function transform(User $user)
{
    return [
        'id'             => (int) $user->id,
        'name'           => $user->name,
        'email'            => $user->email,
        'phone'         => $user->img,
        'mobile'       => $user->mobile,
        'address'       => $user->address,
    ];
}
}

这就是我让这些功能正常工作所需的一切。

但现在在 Laravel 5 中,UserController 确实告诉我找不到 User 类。我尝试向 UserController 添加类似“use App/User”或“use App/Http/Controllers/User”的行。它不起作用。 我不知道为什么,因为我已经包含了变压器,所以我没有收到任何错误,但用户不起作用。 我还尝试了不同的使用方法将用户模型包含到 Transfomer 中,因为我虽然可能会出现错误,但我没有得到工作版本。

我希望有一个人可以帮助我。


让我们澄清一些可能干扰加载控制器的事情。

路线:默认情况下,laravel 附带一个名为RouteServiceProvider发现于app\providers。如果你查看这个文件,你会发现有一个名为$namespace。如果您想在以下位置获得更多“清晰”路线,这非常有用routes.php文件。例如,有$namespace = 'App\Http\Controllers'你转换这个...

Route::get('welcome', 'App\Http\Controllers\HomeController@welcome');

对此...

Route::get('welcome', 'HomeController@welcome');

所以是的,这是编写规则的一个简短选择。默认情况下,该值$namespace被设定为{Application Name}\Http\Controllers

控制器:如果你的 laravel 安装正在使用RouteServiceProvider那么你的控制器永远不会被发现,因为路由前缀是先前声明的命名空间。那么,我应该在控制器中使用哪个命名空间?有两种选择:

  1. 遵循 Laravel 5 的约定,将控制器置于app/Http/Controllers/文件夹。然后,将命名空间声明为默认命名空间:

    namespace {Application Name}\Http\Controllers;
    

    并将其设置为routes.php like:

    // weather is a controller
    Route::get('foo', 'UserController@index');
    
    // weather is a resource
    Route::resource('api-user', 'UserController');
    

    请注意,命名空间结构与其所在的文件夹结构相匹配 (Http/Controllers/)

  2. Delete RouteServiceProvider从提供者文件夹中并将其从提供者数组中删除config/app.php文件。然后,您可以使用“绝对”名称空间,例如:

    namespace {Application Name}\Http\Controllers;
    
    Route::get('foo', 'Myapp\Http\Controllers\UserController@index');
    

应用程序名称和自动加载

你有没有问过自己为什么app文件夹未添加到命名空间?看一下composer.json文件:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "MyCoolApp\\": "app/"
    }
},

如果你注意的话,你会发现有一个别名指出app/文件夹。因此,对于应用程序将响应别名而不是app\Http\Controllers。 我不是这个主题的专家,希望有人帮助我扩展这个解释,但我已经读过psr-4就像一条规则,使您将命名空间与文件夹结构相匹配。结果,如果你的控制器是这样的......

namespace MyCoolApp\Http\Classes;

自动加载类期望您的控制器位于app/Http/Classes/代替MyCoolApp/Http/Controllers

这就是找不到控制器的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 5 中未找到用户类 的相关文章

  • PHP 删除字符最后一个实例之前的所有内容

    有没有办法删除某个字符之前的所有内容 包括最后一个实例 我有多个字符串 其中包含 gt e g the gt cat gt sat gt on gt the gt mat welcome gt home 我需要对字符串进行格式化 以便它们变
  • 转义用户数据,无需魔法引号

    我正在研究如何在来自外部世界的数据被用于应用程序控制 存储 逻辑等之前正确地对其进行转义 显然 随着 magic quote 指令在 php 5 3 0 中很快被弃用 并在 php6 中被删除 对于任何想要升级并进入新语言功能 同时维护遗留
  • 如何使用 php DOM 获取 内的值?

    我如何使用 php DOM 获取 内的值 这是我的 xml 中的一些代码
  • 在php中获取大于2GB的文件大小的最佳方法?

    我想检查本地驱动器上的文件大小windows OS 但是PHP原生函数filesize 仅当文件大小小于时才有效2GB 大于的文件2GB将返回错误的数字 那么 是否有其他方法来获取大于的文件大小2GB 非常感谢 您始终可以使用系统的文件大小
  • Memcache 不会刷新或清除内存

    我一直在尝试清除我的内存缓存 因为我注意到使用时存储占用了近 30 的服务器内存ps aux 所以我运行了以下 php 代码 memcache new Memcache memcache gt connect localhost 11211
  • PHP 中的静态类初始值设定项

    我有一个带有一些静态函数的辅助类 类中的所有函数都需要一个 重 初始化函数来运行一次 就好像它是一个构造函数 有实现这一目标的良好实践吗 我唯一想到的就是打电话init函数 如果它已经运行过一次 使用静态 initialized变种 问题是
  • 在另一个文件中扩展类的正确方法是什么?

    这就是我在 foo php 中的内容 class Foo public foo NULL public foo2 NULL public function setFoo foo foo2 this gt foo foo this gt fo
  • php隐藏所有错误[重复]

    这个问题在这里已经有答案了 隐藏的最佳做法是什么allPHP 错误 因为我不想向用户显示错误 我尝试过使用 htacess通过输入代码php flag display errors off在那里 但它返回给我一个500 error 还有其他
  • 使用 django-rest-framework 设置对象级权限

    尝试使用 django rest framework 最干净 最规范地管理 django guardian 对象级权限 我想将对象的读取权限 module view object 分配给在执行 POST 时发出请求的用户 我的基于阶级的观点
  • Apache 子进程已退出,状态为 255

    经过大量的搜索 尝试 修复 等待和哭泣 在我放弃之前 我想为这个错误抓住最后的机会 我们正在奔跑Microsoft Windows Server 2012 Apache 2 4 6 Win64 OpenSSL 1 0 1e PHP 5 5
  • Zend RegEx Validator 的自定义有意义的错误消息

    我正在验证表单中的文本字段 如下所示 name new Zend Form Element Text name name gt setLabel First Name gt setRequired true gt addFilter new
  • 将 Cloudinary 与 spatie/media-library Laravel 包一起使用

    有人使用 Laravel 包 spatie media library 和 Cloudinary 吗 我认为用 Flysystem 来实现它是微不足道的 我实际上使用 Cloudinary 作为带有 silvanite nova field
  • Lumen:无法打开流:.../vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107 中的权限被拒绝

    My OS is ubuntu 16 04 and I am running Lumen 5 5 When I try to run the app in the browser I get an error 500 我在 var log
  • Laravel,控制器中的 Auth::user()

    Laravel 框架 为什么我无法在 laravel 项目的控制器中使用 Auth user 查看用户是否已登录 Session 是否未连接到控制器 HomeController php public function isauthoriz
  • 将客户分配到 magento 的多个客户组

    您好 我想将多个组分配给特定客户 例如 Rajat 客户 属于 批发 零售商 电力 实际上我在上面看到了同样的话题每个客户有多个客户组 https stackoverflow com questions 6153011 multiple c
  • 使用 Imagick 动态图像创建/Apache 标头

    在将现有的稳定网站转移到新服务器时 我遇到了一些使用 Imagick 动态创建图像的代码的间歇性问题 该代码解析 GET 查询 例如 example com image php ipid 750123 r 0 w 750 h 1000 然后
  • 2 使用我的代码在数组中查询

    我使用滑块来显示我的 WordPress 精选文章 它选择一个自定义类别并返回一定数量的帖子 如何将显示的第一篇帖子设为自定义帖子 我可以直接在滑块代码中添加特定帖子的 ID吗使该帖子首先出现 然后是原始查询返回的其他内容 例如 在页面上
  • 创建单个随机 Magento 优惠券

    我遇到了一些麻烦 我想要做的是每次有人订阅我们的时事通讯时 在 Magento 中自动生成一个随机优惠券代码 这张优惠券可减 10 美元 并且有exp 订阅后两周的日期 因此 我正在尝试编写一个简单的脚本 当提交 订阅我们的时事通讯 表单时
  • WordPress - 类别和子类别的嵌套列表

    我正在尝试显示带有嵌套子类别的 WordPress 类别列表 到目前为止 我只能获取父类别列表或不包括父类别的子类别列表 但我无法将两者连接在一起 这是我想要创建的结果 Parent Category 子类别 子类别 Parent Cate
  • 管理产品页面自定义字段显示在购物车和结账中

    我在产品页面的常规设置选项卡上的 WooCommerce 管理中创建了一个自定义字段 以插入几天的制造时间 我想在购物车和结帐页面上每个产品名称上方显示此自定义字段值 这是我的代码 Insert a Custom Admin Field f

随机推荐

  • 具有键“GenderID”的 ViewData 项的类型为“System.Int32”,但必须为“IEnumerable”类型

    当我尝试提交 发布数据时发生错误 有人可以帮助我尝试每一篇文章 但他们没有帮助我 我是 mvc 新手 任何帮助都会被授予 这是我的代码 public ActionResult Create UserProfileCreateViewMode
  • 将我的文本居中,但保持左对齐?

    我试图使页面上的链接左对齐但在页面上居中 我该怎么做呢 我尝试了很多方法 并在谷歌上搜索了更多我编码时间不长的方法 这正在成为一场真正的斗争 My site 这是我的 HTML 代码 img src http media moddb com
  • x86 中的原子测试和设置:内联 asm 或编译器生成的锁 bts?

    以下代码在为 xeon phi 编译时会抛出异常Error cmovc is not supported on k1om 但它确实可以为常规至强处理器正确编译 include
  • 双精度数中的小数位数[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 如何确定数字中的整数位数和小数点后的位数234 12413在爪哇 双精度数并不总是精确的
  • 从 NSString 解析 XML 以获取值

    这个问题是关于在 xcode 中操作 NSString 的 我有一个从网上获得的 XML 文本字符串 如下所示
  • 使用给定的时间增量对时间序列进行重采样

    我正在使用 Pandas 来构建和处理数据 这是我的数据框 我想要对时间序列数据进行重新采样 并且对于每个 ID 此处命名为 3 从开始到结束 beginning time end time 的所有比特率分数 例如 对于第一行 我希望拥有从
  • 将值减去多行

    好吧 我陷入了需要将值分配到多行的地步 由于我不知道具体的术语 我将其以下面的示例的形式以便更好地理解 假设 x 的值为 20 我需要将其按降序分配 减去到行中 TABLE ID Value1 1 6 2 5 3 4 4 3 5 9 结果应
  • 将逗号后的数字四舍五入为 2 位数字

    我不知道该怎么做 我正在添加逗号数字 结果当然总是一个逗号后数字太多的数字 任何人 EDIT 2 Use the Number对象的toFixed像这样的方法 var num Number 0 005 The Number only vis
  • ggplot 中的数据重新排序

    新的并坚持使用 ggplot 我有以下数据 tribe rho preference watermass 1 Luna2 1 000 hypolimnic 2 OP10I A1 1 000 epilimnic 3 B0 FO56C 0 98
  • 从 @selector 中关闭视图控制器而不创建单独的方法

    我试图通过直接从按钮执行它来关闭呈现的视图控制器 而不是为其创建一个单独的方法 但我不知道如何让它工作 或者是否可能 如有任何帮助 我们将不胜感激 我正在尝试的代码 dismissButton addTarget self action s
  • 从 SQL Server 触发器发送消息

    当 SQL Server 2005 中发生某些事情时 我需要向正在运行的应用程序 Windows 服务 发出信号 是否可以将消息从触发器发送到同一系统上的外部应用程序 您可以使用SQL 服务代理排队做你想做的事 触发器可以创建对话并在队列上
  • 如何使 DrawerLayout 显示在工具栏下方?

    如何使抽屉布局位于操作栏 工具栏下方 我正在使用 v7 21 应用程序兼容库和新的工具栏视图 我看到的例子看起来像
  • 在 pyinstaller 生成的可执行文件中使用 pyunpack 并结合 try except

    我对 pyunpack 有一个奇怪的行为 pyunpack 是一个在可执行文件内用于解包的包 我想做以下事情 我有一个 7z 类型的文件 其结尾不是 7z 而是 sent 首先 我尝试直接解压缩它 这会导致捕获预期的错误 在这个错误捕获中
  • 需要帮助优化 mysql 的纬度/经度地理搜索

    我有一个 mysql 5 0 22 myisam 表 其中大约有 300k 条记录 我想在 5 英里半径内进行纬度 经度距离搜索 我有一个涵盖纬度 经度字段的索引 并且当我仅选择纬度 经度时速度很快 毫秒响应 但是 当我选择表中的其他字段时
  • 使用原始类中的自定义 Android AnalogClock 设置时间

    我想使用互联网上提供的 Android 开源项目的 AnalogClock 源代码制作一个自定义 AnalogClock 类 我想让时钟设置我想要的时间 而不是当前时间 我没有找到关于如何执行此操作的明确示例 因此也许这篇文章会很有用 将源
  • 对汇编 x86 中的数组求和。关于输入的索引

    我在添加数组但在输入的索引上遇到一些问题 例如 用户输入 4 作为起始数组 6 作为结束数组 因此我必须循环 array 4 到 array 6 并将数字相加 我不确定是否可以在 ArraySum 过程中使用 data 中的数组 我是否必须
  • 在 jquery 中引用选择器比实际调用选择器更快吗?如果是这样,有多大区别?

    preview button click preview button slide preview button whatever 这样做是否是更好的做法 var preview button preview button preview
  • python中的reverse()用法?

    sort 和reverse 方法会在对大型列表进行排序或反转时适当修改列表以节省空间 提醒您 它们的操作有副作用 它们不会返回排序或反转的列表 上述文字可以在以下位置找到http docs python org 2 library stdt
  • 执行光线投射时 Camera.main 为 null

    生成错误的代码 void Update if Input touchCount gt 0 RaycastHit2D hit Physics2D Raycast Camera main ScreenToWorldPoint Input Get
  • Laravel 5 中未找到用户类

    我有以下问题 我刚刚从 4 2 升级到 Laravel 5 但是我首先复制到新的 Controllers 文件夹的 UserController 不起作用 它总是告诉我它不适合用户模型 当我复制它时 我的代码如下所示 用户控制器 php