问题标签 [laravel-middleware]

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 投票
3 回答
11413 浏览

laravel - Laravel 5 - how to use basic auth with username in place of email?

Hello guys !

So in Laravel 4 we could do

But now it's not possible, and the doc doesn't give a clue about how to. So can anyone help ?

Thanks !

0 投票
1 回答
446 浏览

php - Laravel 刀片模板具体代码

目前我们在几个项目中使用 Laravel 框架,但我们一直遇到的一个我不喜欢的问题是以下问题:

假设您有一个主页和一个内容页面

HomepageController 拥有所有 Homepage 特定的 php 代码 ContentpageController 拥有所有 Content 特定的 php 代码

我们有一个 app.blade.php

HomepageController 调用视图 homepage.blade.php 包含

ContentController 调用视图 content.blade.php 包含

这里可以看到两个页面都包含parts.top_5,top 5需要一些特定的变量才能输出top5。现在的问题是我们目前正在复制两个控制器或分组中间件中 top5 变量的代码,但是当包含该部件时,是否有更好的解决方案来生成一些刀片特定变量?有点像在加载刀片模板时运行控制器功能?

我一直在搜索互联网,但似乎找不到任何有相同问题的人。希望有人可以帮助我解决这个令人头疼的问题!

0 投票
0 回答
754 浏览

laravel - laravel 5 通过 MenuItiem->Jquery->Controller->Middleware 更改区域设置中间件

所以昨天我完成了大部分工作,现在我正处于能够通过中间件修改语言环境(用于 Laravel 5 中的语言)的最后阶段。

过程如下:

用户从下拉菜单中选择一种语言,单击的值通过 Ajax 传递给控制器​​,控制器修改其语言环境。但这并没有结束。在通过过滤器制作之前。现在是中间件。我对中间件做了很多发现,我将在这里介绍。最后一个阶段仍然没有做出预期的改变:

完整代码

HTML

查询

控制器

中间件(可能是错误所在)

更新:

在荷兰 Luceo 的有益评论之后,我取得了积极进展。

我已经在 Kernel.php 的受保护的 $middleware 中注册了该类我已经添加了:在我的控制器类的顶部使用 App\Http\Middleware\Language。但我现在从 Jquery Ajax 收到错误消息,当它无法在控制器上完成工作时,它返回我“错误”

我不知道错误现在是否在 Ajax 中,或者中间件是否有未决的东西。

中间件内核.PHP

更新二

为了查明 Ajax 错误,我用这个提供了更多细节的错误函数替换了错误函数。错误说(我离线),但我不是,所以控制器和中间件之间的某些连接似乎误导了 Ajax,或者控制器必须返回 Ajax 期望的内容。

路线文件

更新三

我在 Ajax 中修改了 URL 并改为这样写:

现在我没有收到“您处于离线状态”错误,但仍然没有修改语言环境..

0 投票
1 回答
1011 浏览

laravel - Laravel 5 创建带有 oauth2 服务器检查的中间件

我已经实现了这个 oauth 服务器http://bshaffer.github.io/oauth2-server-php-docs/

它有一个 Laravel 实现:http ://bshaffer.github.io/oauth2-server-php-docs/cookbook/laravel/

本指南为您提供指导并提供路线代码:

它就像那样工作得很好。现在我想将“私有”路由中的检查功能转换为可以应用于每个必要路由的中间件。我使用创建了中间件

将其添加到kernel.php中,并将验证函数的代码粘贴在其中。我立即得到一个错误:

所以,我想我将不得不“使用”一些东西,但由于我还是一个初学者,我真的不知道该怎么做......

提前感谢您的帮助!

[编辑] 中间件的内容目前看起来像这样:

再次感谢

0 投票
3 回答
588 浏览

php - 为什么我能够在 laravel 中使用 user() 方法,甚至没有定义它

我的 Laravel 5 源代码中有一个UserControllerUser模型。还有一个AuthController也是 Present (使用 laravel 源预构建)。

我想使用 Eloquent 模型从刀片中的 db 查询数据。

但是,在我的User模型(Eloquent)和任何控制器中,user()都没有定义该方法。Auth即使那样,我也可以通过从课堂上访问它来在我的刀片中使用它。为什么?

例如,

在我的刀片中,{{ Auth::user()->fname }}有效。fname它从我的表中检索数据users并回显它。

它背后的逻辑是什么,我可以为其他数据库表模拟相同的逻辑tasks吗?

0 投票
2 回答
14797 浏览

php - 限制非管理员用户的路由访问

目标

我正在尝试为我的登录用户创建管理员路由限制。我尝试检查我的用户是否为log-in,以及用户类型是否为Admin,如果是,我想允许他们访问管理员路由,否则,响应 404。


路由.php


结果

它没有按我的预期工作。它会引发 404 错误 - 即使对于管理员用户也是如此。

0 投票
0 回答
1022 浏览

laravel - Laravel 5 - 从另一个中间件调用控制器构造函数中的 $this->middleware 不起作用

有谁知道为什么以下示例中的中间件不起作用?

// 这一行是从另一个中间件中执行的:\App::make('PageController');

我也试过:\App::call('PageController@home');但它也不起作用。

但是,如果我从路由中调用控制器,它将按预期工作:

Route::get('test', 'PageController@home');

但是我需要从另一个中间件而不是直接从路由调用控制器。

0 投票
2 回答
1248 浏览

laravel - Laravel 5:多模型中间件“所有者”

我想创建一个中间件来检查经过身份验证的用户是否是该项目的所有者。对于单个模型,代码很简单,看起来像:

现在假设我有多个模型(ModelX、ModelY、ModelZ)并且我不想多次重写中间件句柄函数。如何在中间件中注入引用模型以使其适应我的应用程序中的多个模型?

0 投票
1 回答
4309 浏览

php - Laravel 5:在路由指示的方法之前调用类中的方法

我确信在 Laravel 中有一个有据可查的方法来做到这一点,我只是想念它或者不明白我在读什么。我有一个应用程序使用令牌来访问网站的一部分,而不是用户名或密码。该令牌识别作业,检查作业状态,然后将用户重定向到适当的页面。

到目前为止,这就是我在 routes.php 文件中的内容:

还有一些其他路线无关紧要。这一切都很好,如果用户访问我们给他们的链接,然后RedirectController@index检查工作的阶段并将他们重定向到正确的 URL(目前/first-steps用于阶段 1 和/designs阶段 2)。问题是如果用户为页面添加书签,例如/first-steps,当项目进入阶段 2 时,用户仍然可以访问阶段 1 的页面。我希望能够有一种在路由指示的方法之前运行的方法,以确保他们正在访问作业所在阶段的正确 URL,如有必要进行重定向,然后将作业(一个雄辩的对象)存储在类(或将其注入调用的方法)。

我尝试before在控制器中创建一个方法,但它没有被调用:

正如您在路由器中看到的,我有一个自定义中间件来验证令牌。这是该中间件的代码:

我有一种感觉,我可以使用这个中间件来实现我需要做的事情,但我不确定如何继续,或者即使我在正确的轨道上。有人可以解释一下我需要使用什么来满足我的要求吗?

0 投票
4 回答
18865 浏览

php - 如何设置 Laravel 中间件的执行顺序?

Laravel 5 文档描述了两种分配Middleware的方法:

  1. 将中间件分配给控制器的路由。
  2. 在控制器的构造函数中指定中间件。

但是,我意识到任何用控制器__construct()函数编写的代码都会在中间件之前运行,即使中间件是在控制器函数的第一行声明的__construct

我在 Laravel github 存储库中发现了一个类似问题的错误报告。然而,一位合作者关闭了该问题,并指出“这是预期的行为。”。

我认为middleware应该是应用程序之外的“层”,而__construct功能是应用程序的一部分。

为什么__construct函数在中间件之前执行(假设它是在中间件运行之前声明的)?为什么这是预期的?