加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

laravel框架的故障难题如何解决?

发布时间:2022-04-14 14:04:49 所属栏目:语言 来源:互联网
导读:laravel框架是PHP中比较常用的框架,有很多新手在学习PHP时会遇到一些laravel框架相关的故障问题不知道怎么样解决,下面小编就给大家介绍一下常见的故障问题以及解决办法。 禁止全局csrf认证 在app/Http/Kernel.php中,$middleware表示全局中间件,而$routeM
       laravel框架是PHP中比较常用的框架,有很多新手在学习PHP时会遇到一些laravel框架相关的故障问题不知道怎么样解决,下面小编就给大家介绍一下常见的故障问题以及解决办法。
 
       禁止全局csrf认证
 
       在app/Http/Kernel.php中,$middleware表示全局中间件,而$routeMiddleware表示针对某个路由的中间件,所以只需要把csrf在$middleware中注释掉,然后在$routeMiddleware中添加'csrf' => 'AppHttpMiddlewareVerifyCsrfToken'
如果要在某个路由上使用就这样:
 
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 IlluminateDatabaseEloquentModel::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 ‘SymfonyBridgePsrHttpMessageFactoryHttpFoundationFactory' not found
  
       通常出现在框架还未加载完成就报错,但是在处理错误的时候却使用了env()/request()这个功能,导致没有打印真实的错误。处理方式,一是不要使用app()->environment('...'),而是检查.env文件中是否有错误,例如包含空格的值,必须用双引号包围。我在自定义ExceptionHandler中遇到过几次
 
       The given data failed to pass validation
 
       认证出错却不知道具体错在哪里并且状态码是500,如果有用Dingo API,那么注意Request不要继承use,IlluminateFoundationHttpFormRequest而应该是use DingoApiHttpFormRequest
 
       Call to undefined method setHidden
 
       注意command的主逻辑不是fire而应该是handle
 
       启动时报错Unknown: failed to open stream: No such file or directory in Unknown on line 0

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读