laravel框架的故障问题如何解决?
Admin 2021-05-06 群英技术资讯 1523 次浏览
laravel框架是PHP中比较常用的框架,有很多新手在学习PHP时会遇到一些laravel框架相关的故障问题不知道怎么样解决,下面小编就给大家介绍一下常见的故障问题以及解决办法。
禁止全局csrf认证
在app/Http/Kernel.php中,$middleware表示全局中间件,而$routeMiddleware表示针对某个路由的中间件,所以只需要把csrf在$middleware中注释掉,然后在$routeMiddleware中添加'csrf' => 'App\Http\Middleware\VerifyCsrfToken'
如果要在某个路由上使用就这样:
Route::group(['middleware' => 'csrf'], function(){ // csrf保护的接口
Route::get('/', 'HomeController@index');
}
处理上传文件
$file = Input::file('upload_file");// 获取上传文件对象
$file->isValid() // 检验文件是否有效
$file->getClientOriginalName(); // 获取文件原名
$file->getFileName(); // 获取上传后缓存的文件的名字
$file->getRealPath(); // 获取缓存文件的绝对路径
$file->getClientOriginalExtension();// 获取上传文件的后缀
$file->getMimeType(); // 获取上传文件的MIME类型
$file->getSize(); // 获取上传文件的大小
手动清理配置缓存
php artisan config:cache
插入数据的时候出现MassAssignmentException in Laravel错误
需要给数据表设置可访问的字段,在Model里面
protected $fillable = array('字段1', '字段2');
php artisan db:seed出现[ReflectionException] Claxx XXXTableSeeder dows not exist错误
这是因为新增加了文件但是composer没有感知到,需要先执行composer dump-autoload,定义/修改字段类型为timestamp时出现错误:”Unknown column type “timestamp” requested.”,按照[How do I make doctrine support timestamp columns?]的做法,目前最简单的方式是直接用DB::statement()来写SQL语句。
POST数据的时候出现The payload is invalid
我遇到这个情况是因为在做复杂的表单提交,直接提取X-XSRF-TOKEN的值,但是由于没有转移,导致后端token揭秘失败
保存model的时候出现错误:Missing argument 2 for Illuminate\Database\Eloquent\Model::setAttribute()
一般是Model的几个属性没有设正确,检查这几个值incrementing/timestamps/primarykey/fillable
队列出现Cannot initialize a MULTI/EXEC transaction over aggregate connections
升级到最新版laravel吧,然后将redis的扩展切换到phpredis,laravel5.3之前自带的predis不支持redis的sentinel,并且有些redis操作强依赖于predis的事务操作,各种纠结,最后都不能成功。或者自己写类似的中间件
Class ‘Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory' not found
偶尔安装了某些个第三方库会出现这种幺蛾子,可以用这种方式解决composer require symfony/psr-http-message-bridge
更新表时出现AH00052: child pid 71 exit signal Segmentation fault (11)
原因可能是没有设置主键而直接在该表上面更新数据,导致ORM不知道到底该更新谁。并且Laravel不支持复合主键(https://github.com/laravel/framework/issues/5517,作者不支持这种做法)。这种情况,要么给该表添加唯一主键,要么只能用where直接更新了。
Error while reading line from server
Predis需要设置read_write_timeout=0或者-1,特别是daemon任务,最好设置不超时
PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Class log does not exist' in /Users/freek/dev/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php
出现于5.2版本中,原因是.env文件中的配置的值,中间存在空格,如果中间有空格,需要将值用双引号包起来
Class env does not exist / Class request does not exist
通常出现在框架还未加载完成就报错,但是在处理错误的时候却使用了env()/request()这个功能,导致没有打印真实的错误。处理方式,一是不要使用app()->environment('...'),而是检查.env文件中是否有错误,例如包含空格的值,必须用双引号包围。我在自定义ExceptionHandler中遇到过几次
The given data failed to pass validation
认证出错却不知道具体错在哪里并且状态码是500,如果有用Dingo API,那么注意Request不要继承use,Illuminate\Foundation\Http\FormRequest而应该是use Dingo\Api\Http\FormRequest
Call to undefined method setHidden
注意command的主逻辑不是fire而应该是handle
启动时报错Unknown: failed to open stream: No such file or directory in Unknown on line 0
可能是错误地删除了server.php文件,可以直接自己写一个:
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <taylor@laravel.com>
*/
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
require_once __DIR__.'/public/index.php';
composer install时报错: Please provide a valid cache path
需要手动创建缓存目录,在storage/framwork下面新建sessions、views、cache文件夹即可
以上就是关于laravel框架相关的故障以及解决方法介绍,小编觉得还是比较实用的,因此分享给大家,有需要的朋友可以参考一下,希望能帮助到大家。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家介绍了关于PHP求解三数之和问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
traits学习越来越多的框架和代码开始使用traits方式去组织一些功能,这是非常高效的代码组织结构。通过trait来减少不必要的类继承关系,让代码更加复用,形成可以拔插的代码集合。通过逗号分隔,在use声明列出多个trait,可以都插入到一个类中。单个的例子:<?phptraitSeller{publicfunctionsell(){prin
本篇文章给大家带来了关于PHP的相关知识,给定a,b两个文件, 分别有x,y行数据, 其中(x, y均大于10亿), 机器内存限制100M,该如何找出其中相同的记录?本文就来为大家讲解一下实现方法,希望对大家有帮助。
laravel的核心是服务容器,也就是IOC容器。该容器提供了整个框架中需要的一系列服务,其中包含了依赖注入和控制反转两部分,控制反转是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。
如何在PHP中生成随机数, 对于生成随机数的方法有很多,下面给大家来简单的分享几种,代码如下感兴趣的朋友就继续往下看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008