问题标签 [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.

0 投票
0 回答
442 浏览

php - 为什么 Laravel 的 Response Facade 不是 Facade?

如果您查看 Laravel 的配置,您会看到已为符号设置了别名Response

实际类上的命名空间,以及 Laravel 使用别名来全局访问 laravel 外观对象的一般模式使得这看起来像是Response一个外观。但是,如果您查看Illuminate\Support\Facades\Response该类 的实际定义

我们可以再次看到,该类存在于Illuminate\Support\Facades命名空间中,但它没有扩展Illuminate\Support\Facades\Facade该类,也没有实现 getFacadeAccessor方法,这意味着,令人困惑的是,它并不是真正的外观。

有人知道为什么吗?即是否有一个令人信服的框架原因,为什么 Facade 命名空间中的这个类没有被实现为一个实际的 Laravel 外观?

0 投票
1 回答
3344 浏览

laravel - 门面类中的 Laravel 常量

我有一个名为的类Awesome,并已使用ServiceProvider和 将Facade其注册到应用程序。现在我可以将它用作Awesome::Things().

我想向这个类添加常量,所以我尝试了

但是当我打电话时Awesome::$MOVIE,我得到Access to undeclared static property: Helper\\Aesome\\Facades\\AwesomeFacade::$MOVIE

有人可以帮忙吗?

0 投票
1 回答
3408 浏览

php - Laravel:外观和别名之间的区别

再会!

我读得越多,我就越困惑。Facade 和 Aliases 有什么区别?

我有这个类:

/app/libraries/Project/Data.php

和相应的门面,所以我可以只使用PJD::来访问。

根据周围的一些网页:

... Laravel Facades 是代理。它们在代码的底层真实实现上环绕并调用函数。此外,在 Laravel 应用程序的上下文中,这些 Facade 是通过将它们分配给别名来访问的。依赖注入容器的这种使用允许您通过简单地调用 File 来引用 Illuminate\Support\Facades\Filesystem 之类的东西。(http://ryantablada.com/post/proxies-service-locators-alias-facades-and-war

但是,我还发现并成功测试了添加如下内容:

__app/config/app.php__

我也可以以同样的方式访问我的班级。

那么,有什么区别呢?

谢谢

编辑#01

我在/app/libraries/Project/Data.php中创建了一个名为 Data 的类

我有这个类数据的外观类/app/libraries/Project/DataFacade.php

我有他们的服务提供商:/app/libraries/Project/DataServiceProvider.php

我还添加到/app/config/app.php

composer.json我添加了一个 psr-4 行来将 PJ 命名空间定向到 /app/libraries/Project

通过这样做,我可以从项目中的任何地方访问我的课程,只需通过 PJD:: 而不是 PJ\Data::。

但是,我也注意到,只需添加到/app/config/app.php

没有所有的门面和服务提供者,我得到完全相同的结果。那么,一个或另一个的意义何在?

谢谢,很抱歉这篇大文章。

0 投票
2 回答
5503 浏览

php - Laravel Illuminate\Support\Facades\Input

我是 Laravel 的新手,并查看了一些示例代码。

在控制器中,我看到了这个:

为什么我必须使用“ use Illuminate\Support\Facades\Input; ”?

我不能只使用例如 Input::get(); 就像我在路线文件中所做的那样?

0 投票
4 回答
2567 浏览

php - Laravel:依赖注入与门面?

我之前一直在做的是只使用构造函数注入我的模型,为 Laravel 提供的类使用外观Session例如,等等Auth如果我通过构造注入每个类(无论是我的还是 Laravel 的)并通过语法使用它,或者我应该使用构造函数注入我自己的类并将 Facades 用于 Laravel 提供的任何东西,Validator这会是一个好主意吗?$this->..

更具体地说,这是我的控制器通常的样子:

我应该像下面这样构造我的方法吗?

0 投票
1 回答
10381 浏览

php - 在 Laravel Facades 中使用静态变量

我有一个门面(在这种情况下是一个单例),我使用以下方法注册它ServiceProvider

服务提供者

正面

现在,我想在我的Facility类中有静态变量:

设施.php

但是当我使用时Facility::$MODEL_NOT_FOUND,我得到了Access to undeclared static property

我究竟做错了什么?

0 投票
1 回答
450 浏览

php - 关系中的 Laravel 命名空间让我感到困惑

在我的应用程序中,我有 Event 和 User 模型。由于 Event 模型,我必须将其放入命名空间。所以我创建了如下命名空间。

事件

用户

User 和 Event 之间的关系是简单的 OneToMany。所以在我的EventController中,我使用 POST 方法来创建新的事件资源。

同时我得到一个错误。

如果我没记错的话,我猜这是命名空间错误。但我猜命名空间已经正确声明了。但我尝试访问类似的问题并在关系中使用替代方式,然后效果很好。我个人觉得不满意。知道为什么会发生这种情况吗?
将上述关系更改为

0 投票
3 回答
979 浏览

php - Laravel 4.2 Illuminate Facade 没有得到解决

我通过以下链接创建了一个工匠命令来清除应用程序缓存

http://code.tutsplus.com/tutorials/your-one-stop-guide-to-laravel-commands--net-30349

我试图在我的仪表板控制器中调用它,如下所示

我对上面的代码有异常(上面代码中的方法一):

调用未定义的方法 Illuminate\Support\Facades\Artisan::call() 这意味着门面没有解析给服务提供者。

对于方法二,我得到了以下异常

“命令”命名空间中没有定义任何命令。

我尝试使用 xdebug 对 2 个不同的门面进行调试(其中一个(应用程序门面)在 Artisan 没有正确解析的地方得到解决)。

我对门面及其工作原理知之甚少,但它们来自 laravel 框架,所以帮助较少。

编辑 config/app.php 中的前两行提供程序数组

config/app.php 中的前三行别名

0 投票
1 回答
905 浏览

laravel - Dependency Injection in Laravel 5 Package To Use or Not To Use

I am developing a package for Laravel 5, I decided to benefit from dependency injection in my package when using the Core classes of Laravel, but after reading more and also having asked this question Best approach for Dependency Injection in Laravel 5 package

Now I came up with the idea that if we are using Facades so much and calling static methods like FaceadeName:nameOfMethod the Container actually creates an object for us and calls its method, so to some extend using dependency injection for laravel for classes which are also available through the Facades are is almost useless.

For example having this class:

doing this:

and then in the function:

is almost useless because we bind something to container that is already bound there

It is not a great idea to change the myFunction to

as well, it might look like method injection but it doesn't bring so much advantages. Therefore it would be better not to use dependency injection for Facades in Laravel. Please let me know if I am right or not and please argue my opinion with the right answer if I am wrong.

0 投票
1 回答
492 浏览

php - 在 Laravel 框架中搜索 Schema:table 静态方法定义

我正在尝试了解 PHP Laravel 框架。在处理数据库时,我们使用 Schema::table 在数据库中创建表。在我的应用程序中搜索我发现唯一的定义是

但是在类中或类中都没有table静态方法。SchemaFacade

我缺少什么?