在Laravel 5,App::missing并且App::error是不可用的,那么怎么做你捕捉异常和缺页呢?
我在文档中找不到任何相关信息.
我怎样才能在Laravel 5中制作全局变量,这些变量将在所有Blade模板中提供?
我在Laravel查询构建器和eloquent之间进行了一些性能测试.使用各种sql语句(select-update-delete-insert),查询构建器的速度要快得多.
所以我的问题是:为什么有人使用Laravel Eloquent来反对普通查询构建器?
注意:我在这个问题上有4个赏金,但下面没有提出的答案是这个问题所需要的答案.所需的一切都在下面的Update 3中,只是寻找要实现的Laravel代码.
更新3:此流程图正是我想要完成的流程,下面的所有内容都是原始问题以及一些较旧的更新.该流程图总结了所需的一切.
下面的流程图中的绿色部分是我知道如何做的部分.红色部分及其旁注是我正在寻找帮助完成使用Laravel代码.
我已经做了很多研究,但是当使用Laravel和JWT httponly cookie进行自我消费的API时,信息总是很短而且不完整(大多数在线教程只显示JWT存储在本地存储中,这不是很安全).看起来像包含JWT by Passport的httponly cookie应该用于识别Javascript端的用户,当每次请求发送到服务器以验证用户是否是他们所说的用户时.
还有一些额外的东西需要全面了解如何使这个设置工作,我没有在一个教程中遇到这个包括:
我希望这个问题的答案可以作为一个易于遵循的指南,为未来的读者和那些正在努力寻找一个自我消费API的上述观点的答案.
更新1:
CreateFreshApiToken之前的功能,但是在撤销用户令牌时这不起作用(上面的第3点和第4点).这是基于此评论的核心laravel开发商,谈论时CreateFreshApiToken中间件:由此中间件创建的JWT令牌不会存储在任何位置.它们不能被撤销或"不存在".它们只是为您的api调用提供了一种通过laravel_token cookie进行authed调用的方法.它与访问令牌无关.另外:您通常不会在发布它们的同一个应用程序上使用客户发出的令牌.您可以在第一方或第三方应用中使用它们.使用中间件或客户端发出的令牌,但不能同时使用两者.
所以似乎能够迎合第3点和第4点来撤销令牌,如果使用CreateFreshApiToken中间件则不可能这样做.
Authorization: Bearer <token>处理安全的httpOnly cookie 似乎不是一种方法.我认为请求/响应应该包含安全的httpOnly cookie作为请求/响应头,像这样基于laravel文档:使用此身份验证方法时,默认的Laravel JavaScript脚手架指示Axios始终发送X-CSRF-TOKEN和X-Requested-With标头.
headerswindow.axios.defaults.headers.common = {
'X-Requested-With': 'XMLHttpRequest',
'X-CSRF-TOKEN': (csrf_token goes here)
};
Run Code Online (Sandbox Code Playgroud)
这也是我寻找涵盖上述所有要点的解决方案的原因.道歉,我使用的是Laravel 5.6而不是5.5.
更新2:
似乎密码授予/刷新令牌授权组合是要走的路.使用密码授予/刷新令牌授权组合寻找易于遵循的实施指南.
密码授予: 此授权适用于与我们信任的客户交易,例如我们自己网站的移动应用.在这种情况下,客户端将用户的登录凭据发送到授权服务器,服务器直接发出访问令牌.
刷新令牌授权: 当服务器发出访问令牌时,它还会为访问令牌设置到期时间.当我们想要在访问令牌过期时刷新访问令牌时,使用刷新令牌授予.在这种情况下,授权服务器将在发出访问令牌时发送刷新令牌,该令牌可用于请求新的访问令牌.
我正在寻找一个易于实现,直接,全面的答案,使用密码授予/刷新令牌授权组合,涵盖上述原始5点的所有部分与httpOnly安全cookie,创建/撤销/刷新令牌,登录cookie创建,注销cookie撤销,控制器方法,CSRF等
csrf-protection laravel cookie-httponly laravel-5 laravel-passport
我有两个时间戳,我创建的edited_at和created_at(Laravel's)...在数据库中,两者都有类型时间戳和默认值0000-00-0000B 00:00 ...但是
var_dump(edited_at variable)正在给字符串.虽然var_dump(created_at variable)是对象/碳.这些时间戳有什么问题?
我必须在使用格式('U')转换为整数后比较两者.我只能在Carbon Object上调用这个方法.我怎样才能做到这一点?
在Laravel 5.0.27中,我包含一个带有变量和以下代码的视图:
@include('layouts.article', [
'mainTitle' => "404, page not found",
'mainContent' => "sorry, but the requested page does not exist :("
])
Run Code Online (Sandbox Code Playgroud)
我收到以下错误...
FatalErrorException语法...错误,意外','
我已经缩小了错误,只是来自"mainContent"变量字符串中的"("),当我删除"("错误消失,一切运行正常.我在文档中找不到任何内容或者在线列出的任何类似错误.
有谁知道这是预期的行为还是这是一个应该报告的错误?
非常感谢你的时间!
所以我看待它的方式是一个好的Laravel应用程序应该是非常模型和事件驱动的.
我有一个名为的模型Article.我希望在发生以下事件时发送电子邮件警报:
文档说我可以使用模型事件并在boot()函数中注册它们App\Providers\EventServiceProvider.
但这让我感到困惑,因为......
Comment或Author需要完整的所有模型事件的模型时会发生什么?单一boot()功能EventServiceProvider是否绝对巨大?我是Laravel的初学者,来自CodeIgniter,因此试图绕着正确的Laravel做事方式.谢谢你的建议!
是否可以将中间件添加到资源丰富路由的所有或部分项目中?
例如...
<?php
Route::resource('quotes', 'QuotesController');
Run Code Online (Sandbox Code Playgroud)
此外,如果可能的话,我想将所有路由放在一边index并show使用auth中间件.或者这是否需要在控制器内完成?
我在我的应用程序中构建了一些迁移类来创建我需要的表,但是我一直在收到错误.我需要运行这个命令:
composer dump-autoload
只有这样它才能按预期再次运作.我做错了会产生此错误,或者这是迁移的正常行为吗?
以下是运行迁移过程时出现的错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CreateVideoStatusTable' not found
Run Code Online (Sandbox Code Playgroud) 我正在调试JSON端点,需要查看内部服务器错误.但是,我的app/storage/logs目录是空的,似乎没有专门用于登录项目的其他目录.我试过谷歌搜索主题无济于事.
如何启用日志记录(如果尚未启用)并查看日志?
laravel ×10
laravel-5 ×10
php ×3
blade ×2
laravel-5.2 ×1
logging ×1
mysql ×1
performance ×1
php-carbon ×1
routes ×1
sql ×1
templates ×1
view ×1