问题标签 [laravel-5.2]
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.
php - 重定向后不保留会话数据
我正在尝试实现一些自定义闪存消息,并且在重定向后会话数据被破坏时遇到了一些问题。
以下是我创建我的 Flash 消息的方法:
这是flash()
函数的声明:
这是我使用 SweetAlerts 检查会话/显示闪存消息的方式。此代码包含在我在所有 Blade 模板中扩展的主布局文件的底部。
flash()
如果我在显示视图之前调用该函数,上面的代码将起作用,如下所示:
但是,如果我在重定向到另一个页面之前调用它,它将不起作用,如下所示:
为什么重定向时会话数据丢失?我怎样才能让它持续存在,以便我可以显示我的 Flash 消息?
laravel - Route::auth() 和命名空间
我曾经make:auth
创建过在基本应用程序中运行良好的登录脚手架。但是,我正在创建一个包,因此我已将文件移动到包中它们各自的位置。
make:auth
我已将应用程序创建的路由命名为
当我注释掉Route::auth();
一切似乎工作正常。当我继续时,Route::auth
我得到一个错误
我无法理解问题所在。我对auth()
辅助功能了解不多。
php - Laravel 5.2 - 更新和路由组中间件现在不再被调用
所以我在最新的 Laravel 5.1 上,今天更新到 5.2。在我的路线中,我有这样的事情:
api-version 中间件基本上检查 api-version 的标头,然后在路由操作中适当地填写 {api-namespace}。这在 5.1 中运行良好。但是,自从升级以来Class App\\Http\\Controllers\\{api-namespace}\\MembersController does not exist
,它甚至根本没有影响我的中间件。我有一种感觉,他们可能已经切换了代码的顺序,以便在运行中间件之前验证路由操作,因为如果我将中间件放在全局范围内,它就可以正常工作。但是,我需要这个 api-version 组,所以如果有人知道如何解决这个问题,我会全力以赴。
按要求:
内核.php
ApiVersionMiddleware.php
另请注意,我将中间件移到了中间件组中,但它仍然无法正常工作。仅供参考
更新:
我尝试将中间件移动到全局,但此时它有 0 有关路由的信息,这意味着它无法修改要替换的路由{api-namespace}
。我认为问题是在中间件运行之前检查了“使用”的路线,这显然失败了。谁能证实这一点和/或告诉我如何在 5.2 中实现这样的东西?
更新 2:
所以我发现了这个问题。在Illuminate/Routing/Router.php:834
路由器中尝试替换隐式绑定。这发生在中间件之前并检查有效“使用”的路由。我不知道如何解决这个问题,因为它完全颠覆了我目前正在做的事情。有什么建议么?
php - 验证失败后,Laravel 在输入中重置值?
我现在很困惑,我正在从 Laracast 学习 Laravel,根据讲师的说法,验证失败后,表单不会重置用户输入的值。但是在测试验证时,当我提交表单时会重置所有内容。
另一个问题是当我尝试访问它时未定义的变量。 $errors
我的控制器
我的观点
他使用 v5.0,我使用 v5.2
laravel-5.2 - 设置 Laravel 应用程序 URL
Laravel 在这里相当新,我正在努力理解如何让 Laravel 5.2 知道它所在的位置。这是问题:
我使用 设置了身份验证php artisan make:auth
,现在可以看到可爱的登录页面,以及菜单中的登录和注册链接。问题是这些链接没有转到正确的位置。它们分别指向/login
和/register
在代码中,转换为http://localhost/login
or http://localhost/register
。但是由于我还没有在生产站点上并且正在本地开发,所以我的网站位于http://localhost/projectname/public
.
我已经进入config/app.php
并尝试了 URL 参数的各种值,但这些都没有效果。
我可以做些什么来让这些链接反映完整的站点 URL,而无需每次都手动输入?
php - 在 Laravel 中使用 TesseractOCR
我正在一个新网站上试用 TesseractOCR。
我安装了新版本的 Laravel (5.2.4),在我的服务器 (Debian Jessie) 上安装了 Tesseract,并为 Tesseract 安装了 PHP 包装器;tesseract-ocr-for-php。
我已按照所有设置说明将软件包安装到应用程序上。
在我的routes.php
文件中,我有:
图像myimage.jpg
存在于文件夹images
内称为public
文件夹的位置。
当我导航到example.com/test
我得到:
TesseractOCR.php 第 235 行中的 ErrorException:file_get_contents(/tmp/75176598.txt):无法打开流:没有这样的文件或目录
根据readme.md
您可以通过使用来解决该问题$tesseract->setTempDir('./my-temp-dir');
。
因此,我尝试将routes.php
文件更改为:
但是,这只是使用不同的文件路径给出相同的错误:
TesseractOCR.php 第 235 行中的 ErrorException:file_get_contents(/var/www/tesseract/public/images/1770521095.txt):无法打开流:没有这样的文件或目录
我该如何解决这个错误?
laravel - Laravel 5.2 TokenGuard 实现
如何使用令牌保护来创建 API?我试过它来实现它,但我收到了错误
call_user_func_array() 期望参数 1 是一个有效的回调,类 'Illuminate\Auth\TokenGuard' 没有方法 'attempt'
laravel - Laravel 5.2 重置密码 + Mandrill
我有 Laravel 5.2 全新安装。
我做了以下工作:
- 我已经设置了我的
.env
文件MAIL_DRIVER=mandrill SECRET=my_mandrill_api_key
- 我已经安装了 Guzzle ( https://github.com/guzzle/guzzle )
- 我已经在视图中设置了我的电子邮件(https://github.com/laravel/laravel/blob/5.0/resources/views/emails/password.blade.php)
- 我已经修复了证书问题(PHP cURL 错误代码 60)
因此,似乎一切都正确完成。
当我填写电子邮件以重置密码并按发送密码重置链接按钮时,我收到以下错误
服务器错误:
POST https://mandrillapp.com/api/1.0/messages/send-raw.json
导致500 Internal Server Error
响应:{"status":"error","code":-1,"name":"ValidationError","message":"You must specify a key value"}
我检查了我在 Mandrill ( https://mandrillapp.com/settings/api ) 中的日志,我的操作没有日志。
从 Mandrill 的错误中,我知道它没有获取 api 密钥,所以由于某种原因,api 密钥和其他值没有传递给 Mandrill api。
问题:有什么遗漏/错误?
注意:现在我正在本地环境中构建应用程序。我的本地环境 Windows 10/Bitnami WAMP 堆栈 7/我也在使用 Mandrill API。
laravel - 未定义的变量:Laravel 中的错误
当我想在我的 laravel 项目中注册用户时,页面总是说
未定义变量:错误(查看:/var/www/resources/views/auth/register.blade.php)“
根据 Laravel 文档,$errors
应始终自动设置:
因此,重要的是要注意 $errors 变量将始终在每个请求的所有视图中可用,从而使您可以方便地假设 $errors 变量始终已定义并且可以安全使用。
当我使用时,我在每个视图上都有这个:
或当我想使用该$errors
变量时的任何其他方式。
为什么是这样?我以前从来没有遇到过这个问题。
有人能帮助我吗?
php - Laravel 5.1 到 5.2 作曲家更新错误
每当我尝试运行 composer update 时,我现在都会收到一个错误,其根本原因如下
调用未定义的方法 Illuminate\Bus\Dispatcher::mapUsing()
我可以确认 Laravel 5.2 已正确安装,所有其他依赖项也是如此。这仅在运行 php artisan clear-compiled 时发生。
我还根据几个小时前 Laracasts 论坛中的建议更新了我的基本控制器
但我仍然收到错误
更新:只要应用程序被引导,就会发生这种情况。我的应用程序现在甚至无法运行。
更新 2,完整的堆栈跟踪: