问题标签 [laravel-facade]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
laravel - Laravel 5: Auth::user() 每次使用时都会查询数据库吗?
在用户的编辑个人资料页面上,我想显示当前登录用户详细信息的现有值,例如姓名、电子邮件、性别等。我的问题如下
是否推荐用户 Auth::user()->name , Auth::user()->email 直接填充表单字段?或者我应该
$user = Auth::user();
在我的控制器中创建一个变量,然后像普通对象一样将它传递给我的视图到 $user?每次我使用给定视图文件时,是否多次使用 Auth::user() 访问我的数据库?
提前致谢。
php - laravel 5:扩展外观
我需要根据客户处理不同类型的数据库。
我创建了一个名为MyDBFacade的 Facade ,我可以在其中调用自己的函数。
例如:
是否有可能以某种方式扩展 Facade DB::框架,我可以添加自己的函数然后调用DB::createUser("MyUser")
?
任何线索或想法将不胜感激。
在此先感谢,祝您有美好的一天。
php - PHPUnit Laravel 哈希不可用
我在 Laravel 中有一个单元测试,用于测试如下所示的 API 调用,但是在运行它时出现以下运行时错误:
我在 setup 方法中创建了一个用户,目的是在 tearDown() 方法中再次删除它,然后运行我的身份验证测试。
首先,有没有更好的方法来做我想做的事?例如在不接触数据库的情况下模拟用户?其次,如何设置“立面根”或该错误究竟意味着什么?为了创建虚拟用户,我已经尝试不打扰该特定字段的哈希值,但是错误似乎转移到模型中,其中(再次)使用了 Hash 外观类。
是否有任何额外的步骤来设置环境,以便可以在测试中使用这些外观?
提前致谢。
php - 是否需要存储库或服务提供商?
我正在构建一个 Laravel 5.3 应用程序,它从许多潜在来源中提取数据。这是一个具有 3 个来源的后备系统:
- 数据库
- 如果没有找到,来源 1
- 如果没有找到,来源 2
所有 3 个源都非常简单,可以使用以下 2 种方法以相同的方式访问:
function get($id)
function query($type, $string)
我知道围绕实现这一点的不同方法有各种术语,但在阅读文档后我不确定最干净的方法是什么。每个数据源都应该实现为Repository
? 一个ServiceProvider
包裹在一个容器里?我发现文档很详尽,但也缺乏整体/高级别的解释,所以任何指针都值得赞赏。
php - 在 Laravel 5.3 中创建外观时出错
我尝试在 laravel 中创建外观。
我的门面:
我的基类:
在通话中:
我得到错误:
这有什么问题?
有什么建议么 ?
php - Laravel 5.3 - Auth Scaffolding 如何插入错误
我对 Laravel 比较陌生,并试图理解一些东西。我创建了一个基本项目并使用了`
` php 工匠制作:身份验证
` 生成身份验证脚手架。
在生成的视图中,$errors 变量可用。我知道这可以通过使用 withErrors() 方法插入到视图中。
但是,我似乎无法在示例中找到它是如何插入的。在后台,以下功能似乎正在处理注册:
所以调用了默认 RegisterController 的验证器方法,它返回了一个验证器。但我无法理解验证器的错误是如何插入到 auth.register 视图中的。
testing - 没有 Laravel 的模拟 Illuminate Config 外观
我正在开发一个依赖于Config
外观的包。代码本身运行良好,但我在测试时遇到问题。
最初,我使用的是以下代码:
和其他许多人一样,我遇到了一些问题。
后来我读到不鼓励Config
嘲笑外观。
为了解决这个问题,大多数人倾向于建议使用以下方法:
如果您从 Laravel/Lumen 进行测试,我认为效果很好。
但我的问题是,我不是。我只依赖几个Illuminate
包,所以这不起作用,因为我得到:
RuntimeException: A facade root has not been set.
在这一点上,有些人可能会建议我应该只注入Config
存储库依赖项,但我在模型使用Config
的特征中使用外观Eloquent
,所以 DI 不起作用。
有没有其他方法可以解决这个问题?
谢谢!
PS:这个问题也已经发布在Laracasts上
php - Laravel 中使用的 Facades 是什么?
我对 Laravel 提供的 Facades 感到困惑。
Laravel文档指出:
外观为应用程序服务容器中可用的类提供“静态”接口。Laravel 附带了许多外观,它们提供了对 Laravel 几乎所有功能的访问。Laravel 外观充当服务容器中底层类的“静态代理”,提供简洁、富有表现力的语法的好处,同时保持比传统静态方法更多的可测试性和灵活性。
请帮助我理解:
- 为什么我们真正使用
use Illuminate\Support\Facades
? - 如何创建自定义外观?
php - laravel 5.2中的外观错误
我在 Laravel 5.2 中安装了一个名为jonnywilliamson/laragram的包
并输入config\app.php
一个别名和服务提供商,如下所示:
在我的控制器中:
和路线:
我还运行以下命令:
但仍然显示如下错误:
我该如何解决?
php - 如何扩展 Laravel Storage 门面?
在不知道 Laravel 外观如何工作的情况下,基于我的 PHP 知识,我尝试扩展 Storage 外观以添加一些新功能。
我有这个代码:
启动服务提供商时:
门面是:
使用时:
我收到此错误:
Facade.php 第 237 行中的 FatalThrowableError:调用未定义的方法 Namespace\MyStorage\MyStorage::disk()
还尝试扩展MyStorage
表单Illuminate\Filesystem\Filesystem
并以其他方式得到相同的错误:
Macroable.php 第 74 行中的 BadMethodCallException:方法磁盘不存在。