laravel日常总结 转载

版权声明:本文为博主原创文章,未经博主允许不得转载。   原文 https://blog.csdn.net/xiaopingga/article/details/79497487
laravel日常使用总结
一、redis 运行服务时报错:
Creating Server TCP listening socket *:6379: bind: No such file or directory

解决方法,依次输入以下命令

1. redis-cli.exe

2. Shutdown

3. Exit

4. redis-server.exe

 

二、路由routes.php的设置
Routes.php是可以更改的,设置的位置是App->Providers->RputeServiceProvider.php

 

 

三、中间件可以自定义
在App->Http->Kernel.php中,是设置的中间件,这个是可以自定义的,

在Middleware中添加中间件Cors.php,在Kernel.php中可以增加 

  

Mui是我自定义的一个中间件组名字;运行Kernel类的handle方法,主要动作是运行middleware和启动URL相关的Contrller;

 

在手机端访问的时候,就会加载mui的中间件组;

 

四、去掉POST提交验证
 

 

在VerifyCsrfToken中,可以设置不需要验证(即{!! csrf_field() !!})的路由名,

 

这样所有mui/*的路由,对post提交都没有验证,也可以在Kernel.php中间件组中去掉\App\Http\Middleware\VerifyCsrfToken::class,

 

五、新增和修改可以用一个页面
 

判断下对象是否存在就可以,

 

这里面{{ method_field('PATCH') }}  {{ csrf_field() }} 是用于PATCH提交的,浏览器不识别PATCH PUT DELETE这些提交方式,只识别GET POST

 

六、Datatables的使用
Laravel可以使用datatables,以下是我使用datatables的流程及问题;

1.安装
在cmd中打出

composer require yajra/laravel-datatables-oracle:~5.0

即可使用composer安装datatables

在config/app.php中添加:

yajra\Datatables\DatatablesServiceProvider::class,

'Datatables' => yajra\Datatables\Datatables::class,

生成配置文件: 

php artisan vendor:publish

这样子就安装完了

详情参考:

http://blog.csdn.net/hooloo/article/details/50415949

2.使用
1、引入:

在所需的controller中引入use Datatables;

在app.blade.php界面中引入jquery.dataTables.js和jquery.dataTables.css

 

引入在href="{{ URL::asset('地址') }}";

地址是放在public文件夹下的文件

 

2、Controller端

Controller端放置一个跳转页面:

 

一个datatables查询页面:

 

跟laravel自己查询一样,只不过不需要在结尾添加->get()或->frist()等方法;

直接Datatables::of($result)->make(true);即可;

Datatables还有一些相关方法,可以参考:https://packagist.org/packages/yajra/laravel-datatables-oracle

 

3、前端页面

其他字段都差不多

 

3.自定义

由于数据库中保存的是加密后的数据,所以用户管理中,展现的数据必须是解密后的,这就需要我修改datatables源码来满足我的需求,

 

decryptMake这个是我自定义的源码方法名,好吧,说实话,我都忘了我是咋弄的了,勉强找到这个方法,等我清醒的时候再回忆回忆。

 

这两个方法是我自定义的,应该是仿照make方法写的。

 

主要的目的是对相关字段进行解密,我也没写什么高深的方法,只是在vendor\yajra\laravel-datatables-oracle\src\yajra\Datatables\Engines\QueryBuilderEngine.php页面中添加两个方法decryptMake和decryptRender,实现我功能的是decryptRender方法,主要是在下面添了一段话

 

 

我忘了object是干嘛的了,但好像没那么重要。

eyJpdiI6Ik56bEdSRUZLTVRWSVZXUm9aamc1Wmc9PSIsInZhb这段字符串是所有加密的密文里都有的,所以我拿它作为是否为密文的判断依据,其他就没啥了。

4.错误

项目上线后,发现运维管理模块的datatables不好使,报出Failed to load resource: the server responded with a status of 404 (Not Found)错误

 

上网查了一下,是因为url有问题,

 

但在本地测试是好使的,同样的url把ip地址和端口改为本地的,都好使,而且用户管理也是使用的datatables也是好使的,所以,我推测是url字符过长导致的错误,后来验证了下,的确是这样,服务器对get请求的字符有长度限制,我把url改成post请求,就好使了。

以下是浏览器对get请求的限制,作为扩展知识,本次报错是服务器对get请求的限制,不是浏览器:

http://blog.csdn.net/M_ChangGong/article/details/5764711

 

 

七、文件的上传与下载
有帮助的文档:

http://laravelacademy.org/post/2333.html?utm_source=tuicool&utm_medium=referral

http://www.jianshu.com/p/76ba6a417561

http://blog.csdn.net/zhangfei8625/article/details/43057163

1. 前端

前端很简单,只要是在form表单中添加enctype="multipart/form-data"这句话,就可以实现文件的上传,同时type定义为file就可以了

 

2. 后端

如果是保存到其他空间,可以在config-filesystems.php中设置

 

这里面public_path代表着public目录下,该目录的文件,可以无需注册,可直接访问,这样不怎么安全,一些重要的数据最好是放在其他位置,可以放在storage目录下

 

后台相关代码:

 

若是手机端传图片,后台存储的话:

$_FILES判断是否有图片传入

详细代码:

 

若上传失败,显示未获取到文件,有可能是上传的文件超出了php接收上限,修改php.ini文件中的post_max_size 和upload_max_filesize字段就行了

相关文档:http://www.365mini.com/page/php-upload-file-exceed-limit.htm

 

八、EXCEL导入到mysql
1、安装

使用Composer安装依赖

首先在Laravel项目根目录下使用Composer安装依赖:

composer require maatwebsite/excel ~2.0.0
安装后的设置

在config/app.php中注册服务提供者到providers数组:
Maatwebsite\Excel\ExcelServiceProvider::class,

同样在config/app.php中注册门面到aliases数组:

'Excel' => Maatwebsite\Excel\Facades\Excel::class,

如果想要对Laravel Excel进行更多的自定义配置,执行如下Artisan命令:

php artisan vendor:publish

执行成功后会在config目录下生成一个配置文件excel.php。

2、导入

 

 

3、捕获异常

 

相关文档:

http://blog.csdn.net/small_whale/article/details/51917211

http://bbs.csdn.net/topics/390011157

 

九、引入ffmpeg进行音频转换
参考:https://www.cnblogs.com/love-snow/articles/7246475.html

我没有用上下载的zip包,而是直接到项目根目录下输入

composer require php-ffmpeg/php-ffmpeg

好像也引进去了

 

在vendor目录下:

 

我看看咋用^_^

参考:

https://www.cnblogs.com/peteremperor/p/6477743.html(推荐)

http://blog.csdn.net/qq_38568388/article/details/78820809(参考)

https://laravel-china.org/topics/327/using-ffmpeg-to-deal-with-multimedia-files-under-laravel

 

直接create()的时候一直都提示:

local.ERROR: exception 'Alchemy\BinaryDriver\Exception\ExecutableNotFoundException' with message 'Executable not found, proposed : avprobe, ffprobe' in D:\xxxx\vendor\alchemy\binary-driver\src\Alchemy\BinaryDriver\AbstractBinary.php:160

估计是因为没有找到对的地址: https://github.com/PHP-FFMpeg/PHP-FFMpeg

根据这个,有下载了

 

这个,放入到php_ffmepg中,然后将对应的ffmpeg.exe和ffprobe.exe目录放入到create中

 

又一个问题:

local.ERROR: exception 'Alchemy\BinaryDriver\Exception\ExecutionFailureException' with message 'ffmpeg failed to execute command "D:\xxxx\vendor\php-ffmpeg\php-ffmpeg\bin\ffmpeg.exe" "-y" "-i" "D:\iEBP4JLSI-PHP\public/uploads/ceshi/Audio.mp3" "-threads" "12" "-acodec" "libfaac" "-b:a" "128k" "D:\iEBP4JLSI-PHP\public/uploads/video/video.pcm"' in D:\xxxx\vendor\alchemy\binary-driver\src\Alchemy\BinaryDriver\ProcessRunner.php:100

代表你选择的格式$format = new FFMpeg\Format\Audio\Vorbis();与要转换的格式不符

是音频格式有问题,对方写的格式是视频,改成音频就可以了,代码如下:

 

而后与百度语音识别进行交互,自定义类库引入问题可以参考:http://blog.csdn.net/darry_zhao/article/details/52689635

与百度语音识别交互时,如果语音差别非常大,就说明你上传的音频不符合对方的要求:

 

设置ffmpeg转换格式时,setAudioChannels为音频声道设置设为1即可,setAudioKiloBitrate为音频码率设置,设为8或16都可以。
--------------------- 
作者:小瓶盖儿zzz 
来源:CSDN 
原文:https://blog.csdn.net/xiaopingga/article/details/79497487 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel 是一款基于 PHP 语言的开源 Web 应用框架,它采用了 MVC(Model-View-Controller)的软件设计模式,具有高效、简洁、优雅、可扩展等特点,被广泛应用于 Web 应用开发领域。在学习 Laravel 框架的过程中,可以进行一些实验来深入了解 Laravel 的特点和使用方法。 下面总结一些常见的 Laravel 实验: 1. 新建 Laravel 项目:在命令行中进入目标文件夹,输入 `composer create-project laravel/laravel` 命令即可新建 Laravel 项目。 2. 数据库迁移:Laravel 提供了数据库迁移功能,可以简化数据库表的创建和修改。在命令行中输入 `php artisan make:migration create_users_table` 命令即可创建一个名为 create_users_table 的迁移文件,修改该文件可以定义用户表的结构,然后运行 `php artisan migrate` 命令即可将表结构同步到数据库中。 3. 路由设置:Laravel 的路由设置非常简便,可以通过在 `routes/web.php` 文件中添加路由来定义 URL 和对应的控制器方法。例如,可以通过以下代码来定义一个 `/home` 的路由: ``` Route::get('/home', 'HomeController@index'); ``` 4. 控制器设置:Laravel 的控制器可以通过命令行快速创建,例如,可以通过 `php artisan make:controller HomeController` 命令来创建一个名为 HomeController 的控制器。然后,在该控制器中定义一个 `index` 方法,即可在路由中调用该方法。 5. 视图设置:Laravel 的视图文件存放在 `resources/views` 目录下,可以通过在控制器方法中返回视图文件名的方式来渲染视图。例如,可以在 HomeController 中添加以下代码: ``` public function index() { return view('home'); } ``` 6. 表单验证Laravel 提供了表单验证功能,可以在控制器方法中通过 `validate` 方法对表单数据进行验证。例如,可以在 HomeController 中添加以下代码: ``` public function store(Request $request) { $validatedData = $request->validate([ 'name' => 'required|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|confirmed|min:6', ]); } ``` 以上就是一些常见的 Laravel 实验总结,通过这些实验可以更深入地了解 Laravel 的特点和使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值