Laravel开发技巧
文章平均质量分 69
Laravel开发技巧,访问itchuan.net获取更多信息!
八点博客(钏)
专注分享技术交流
展开
-
laravel使用redis/set限制登录(同时在线数量)
思路(以限制3台为例)每当用户登录时,执行两个操作:(1)写入session(用户信息 + 随机字符串A)(2)判断redis的集合长度是否大于等于3,如果是,则弹出集合第一个元素,否则,继续第三步。(3)写入redis,利用集合(key:用户id,value:随机字符串A)每当用户进入任意页面时候执行一个操作:判断session里的随机字符串是否在redis的集合(key为用户id)里面,如果不在,则清除当前登录用户的session信息,强制下线1、用户登录 //生原创 2021-01-07 16:51:56 · 1069 阅读 · 0 评论 -
DcatAdmin开发集锦(2):屏蔽OSS找不到文件错误
新增/编辑页面,若远程文件不存在,则删除数据库文件字段记录 $id = \request('article'); if($id){$res = Article::find($id); if($res->photo != ''){ $handle= @fopen('http://static.abc.com/'.$res->photo,'r'); if (!$handle) { $res->phot原创 2020-12-18 11:25:52 · 463 阅读 · 0 评论 -
laravel小技巧
1、自增字段不修改updated_at$mE= Merchant::where('user_id',$id)->first();$mE->timestamps = false;$mE->increment('read_count');原创 2020-07-02 10:02:50 · 266 阅读 · 0 评论 -
Laravel 新篇章(2):使用定时任务
1、生成任务类App\Console\Commands\Test.phpphp artisan make:command SendEmail2、打开文件App\Console\Commands\Test.phpnamespace App\Console\Commands;use Illuminate\Console\Command;class SendEmail extends Command{ protected $signature = 'email:send';..原创 2020-11-20 09:32:08 · 185 阅读 · 0 评论 -
Laravel 新篇章(1):使用队列
1、在.env文件中进行配置(默认为异步,数据库)QUEUE_CONNECTION=database2、生成队列表php artisan queue:table执行php artisan migrate3、数据库中会生成jobs和failed_jobs两张表jobs存放未执行的队列failed_jobs存放执行失败的队列4、生成Job类(位于app\Jobs\SendEmailJob.php)php artisan make:job SendEmailJob原创 2020-11-12 16:09:38 · 326 阅读 · 0 评论 -
easywechat微信开发系列(1):公众号网页授权
准备工作:1、已认证的服务号(apppid、appsecret、token、aes_key)2、安全域名3、已经用composer安装好easywechat1、config/app.php 的 providers 数组,不用多说'providers' => [ // ... Overtrue\LaravelWeChat\ServiceProvider::class,],'aliases' => [ // ... 'EasyWeCha.原创 2020-07-24 18:05:36 · 2421 阅读 · 0 评论 -
easywechat微信开发系列(2):公众号网页支付
准备工作:1、已认证的服务号(apppid、appsecret、token、aes_key)2、微信支付商户(商户号、密钥)3、两者互相绑定原理解析:1、前台商品页面:点击支付按钮,js获取商品id和数量(价格和用户ID尽量在后台获取,防止用户恶意操作)2、点击按钮后ajax把商品id和数量传递给后台(后台地址为 /wxPay)3、后台根据商品id查找价格等信息,创建订单(订单价格,订单号,是否支付等信息)创建订单时是未支付状态。然后把总价×100和订单号通过easywe.原创 2020-07-21 10:06:08 · 1122 阅读 · 0 评论 -
laravel 使用 vue
引入app.js app.css<link rel="stylesheet" href="{{asset('css/app.css')}}"><script src="{{asset('js/app.js')}}"></script><div id="app"> <example></example>...原创 2020-04-07 20:14:30 · 405 阅读 · 0 评论 -
Laravel技巧集锦(42):实现用户设置
分析:实际开发中,个人用户资料往往需要不断增加,比如昵称、邮箱、年龄。后期随着业务的增加可能会需要增加身高、体重、城市等信息,如果采用一个资料对应一个字段的方法,后期维护和可用性都会大大下降,因此可以采用类似json的方式存储资料,比如{"name":"tom","age","18"}一个字段便可存储多个资料,且拓展性可用性都比较高。1、数据库设计Schema::create('us...原创 2019-04-23 20:47:04 · 210 阅读 · 0 评论 -
Laravel技巧集锦(41):实现用户修改密码
1、路由Route::get('/password','PasswordController@password');Route::post('/password/update','PasswordController@update');2、view <form class="form-horizontal" role="form" method="POST" action...原创 2019-04-23 16:46:28 · 1598 阅读 · 0 评论 -
Laravel技巧集锦(40):使用vue-image-crop-upload上传头像到服务器或者七牛云
需要用到的插件vue-image-crop-uploadhttps://github.com/dai-siki/vue-image-crop-uploadlaravel-filesystem-qiniuhttps://github.com/overtrue/laravel-filesystem-qiniu上传到七牛云1、安装vue-image-crop-upload和babel...原创 2019-04-23 16:18:43 · 782 阅读 · 0 评论 -
Laravel技巧集锦(39):实现notification已读和未读状态显示
原理:在通知列表中,如果已读,直接链接到原本的url;如果未读,先跳转到notifications/n_id将此通知设置为已读,在链接到redirect_url(原本的url)。使用notifications/n_id?redirect_url=xxx的形式在laravel 5.3.30+ 中vendor\laravel\framework\src\Illuminate\Notifica...原创 2019-04-22 23:34:06 · 1214 阅读 · 0 评论 -
Laravel技巧集锦(39):使用notification实现站内通知(私信通知)
准备:https://blog.csdn.net/sinat_37390744/article/details/89365517数据库https://blog.csdn.net/sinat_37390744/article/details/89387656邮件1、创建app\Notifications\NewMessageNotification.php>>php...原创 2019-04-22 22:54:29 · 1420 阅读 · 0 评论 -
Laravel技巧集锦(38):显示私信列表和标记已读私信
1、modelpublic function fromUser(){ return $this->belongsTo(User::class,'from_user_id'); } public function toUser(){ return $this->belongsTo(User::class,'to_user_id');...原创 2019-04-22 21:00:43 · 487 阅读 · 0 评论 -
Laravel技巧集锦(37):自定义helpers函数
1、创建app\Support\helpers.phpif (!function_exists('user')){ function user($driver = null){ if($driver){ return app('auth')->guard($driver)->user(); } re...原创 2019-04-20 21:05:46 · 407 阅读 · 0 评论 -
Laravel技巧集锦(36):分别对问题、答案评论
分析:评论--问题 评论--答案使用morphTo、morphMany1、定义模型关系question.phppublic function comments(){ return $this->morphMany('\App\Comment','commentable');}answer.phppublic function comments(){...原创 2019-04-20 18:58:46 · 349 阅读 · 0 评论 -
Laravel技巧集锦(34):使用vuejs组件化开发点赞按钮
准备:原理类似关注作者https://blog.csdn.net/sinat_37390744/article/details/893634821、api.phpRoute::post('/answer/{id}/votes/users','VotesController@users');Route::post('/answer/vote','VotesController@vote...原创 2019-04-19 22:23:40 · 223 阅读 · 0 评论 -
Laravel技巧集锦(35):使用vuejs组件化开发发送私信功能
1、api.phpRoute::post('/message/store','MessagesController@store');2、controller public function create(array $attributes){ return Message::create($attributes); }3、vue<templ...原创 2019-04-19 22:18:29 · 509 阅读 · 0 评论 -
Laravel技巧集锦(33):使用notification实现站内通知(邮件)
准备:会使用sendcloud发送邮件https://blog.csdn.net/sinat_37390744/article/details/887383591、app\Notifications\NewUserFollowNotification.php中指定通知类型为email<?phpnamespace App\Notifications;use App\Chan...原创 2019-04-18 21:12:46 · 1131 阅读 · 0 评论 -
Laravel技巧集锦(32):使用notification实现站内通知(数据库)
1、生成app\Notifications\NewUserFollowNotification.phpphp artisan make:notification NewUserFollowNotification设置<?phpnamespace App\Notifications;use Illuminate\Bus\Queueable;use Illuminate...原创 2019-04-17 21:47:34 · 1384 阅读 · 1 评论 -
Laravel技巧集锦(31):使用vuejs组件化开发关注作者按钮
1、resources\assets\js\components\UserFollowButton.vue中<template> <button class="btn btn-default" v-bind:class="{'btn-success':followed}" v-text="text" ...原创 2019-04-17 20:06:33 · 249 阅读 · 0 评论 -
Laravel技巧集锦(30):使用api_toke前后端分离
查阅可知:config\auth.php中 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ],//api 'api' => [ 'driv...原创 2019-04-17 16:15:21 · 420 阅读 · 0 评论 -
Laravel技巧集锦(29):使用vuejs组件化开发关注按钮
1、创建vue文件,目录为:resources\assets\js\components\QuestionFollowButton.vue,写入<template> <button class="btn btn-default" v-bind:class="{'btn-success':followed}" ...原创 2019-04-17 14:40:04 · 276 阅读 · 0 评论 -
Laravel技巧集锦(28):使用gulp编译css js
1、package.json{ "private": true, "scripts": { "prod": "gulp --production", "dev": "gulp watch" }, "devDependencies": { "bootstrap-sass": "^3.3.7", "gulp": "^3.9.1", "jqu...原创 2019-04-17 12:35:38 · 302 阅读 · 0 评论 -
Laravel报错解决集锦(2):误删migration文件出现failed to open stream: No such file or directory问题
解决方案:删除映射关系1、vendor\composer\autoload_static.php中删除该映射关系所在行//'CreateTopicsTable' => __DIR__ . '/../..' . '/database/migrations/2019_03_22_205815_create_topics_table.php',2、vendor\composer\a...原创 2019-03-22 21:03:05 · 6508 阅读 · 1 评论 -
Laravel报错解决集锦(1):SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t oo long
问题描述:在使用php artisan migrate时出现SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t oo long;原因分析:MySql支持的utf8编码最大字符长度为3字节,如果遇到4字节的宽字符就会出现插入异常。三个字节UTF-8最大能编码的Unicode字符是0xfff...原创 2019-02-25 17:13:26 · 1873 阅读 · 0 评论 -
Laravel框架Warning: require(../vendor/autoload.php): failed to open stream: No such file or directory
最近在学习Laravel框架,在phpstudy下使用composer+laravel安装器的方式安装了Laravel,但是访问的时候报错:Warning: require(D:\phpstudy\WWW\public\myblog\bootstrap/../vendor/autoload.php): failed to open stream: No such file or directo...原创 2019-02-23 16:36:51 · 10558 阅读 · 1 评论 -
Laravel使用(一):安装
1、安装composer;2、安装laravel;3、后续补充原创 2019-02-22 20:26:33 · 241 阅读 · 0 评论 -
Laravel技巧集锦(27):使用Repository分离model、controller
说明:实际开发时,如果控制器中写的代码太多会影响可读性,因此可以将控制器中的代码放入到Repository中,在控制器中调用就可以了。1、创建Repositories目录,位于app目录下2、创建ArticelRepository.php文件,目录为app\Repositories\ArticelRepository.php,定义CURD操作namespace App\Reposit...原创 2019-03-23 15:54:53 · 958 阅读 · 0 评论 -
Laravel技巧集锦(25):使用UEditor编辑器
1、安装composer require "overtrue/laravel-ueditor:~1.0"2、注册Overtrue\LaravelUEditor\UEditorServiceProvider::class,3、发布配置文件和资源php artisan vendor:publish --provider='Overtrue\LaravelUEditor\UEd...原创 2019-03-22 17:10:50 · 454 阅读 · 0 评论 -
Laravel技巧集锦(24):密码重置功能
准备:密码重置功能如果无法使用laravel自带的,就可以用sendcloud代替SendCloud使用https://blog.csdn.net/sinat_37390744/article/details/887383591、找到ForgerPasswordController.php发现使用了 use SendsPasswordResetEmails;2、定位找到ven...原创 2019-03-22 16:01:14 · 372 阅读 · 0 评论 -
Laravel技巧集锦(23):用户注册发送邮件激活账户
准备:1、sendcloud发送邮件https://blog.csdn.net/sinat_37390744/article/details/887383592、flash消息提示https://blog.csdn.net/sinat_37390744/article/details/88738171步骤1、使用自带的users migration,增加几个字段publ...原创 2019-03-22 13:37:46 · 973 阅读 · 0 评论 -
Laravel技巧集锦(22):使用sendcloud发送邮件
SendCloud官网https://www.sendcloud.net/准备:SendCloud官网注册账号,每天有免费发送条数,获取APP_USER、APP_KEY、模板1、安装naux/sendcloud拓展composer require naux/sendcloud2、注册\Naux\Mail\SendCloudServiceProvider::class,3...原创 2019-03-22 13:13:12 · 655 阅读 · 0 评论 -
Laravel技巧集锦(21):使用laracasts/flash提示消息
Github地址https://github.com/laracasts/flash1、安装laracasts/flashcomposer require laracasts/flash2、注册config\app.php\Laracasts\Flash\FlashServiceProvider::class,3、控制器中public function login()...原创 2019-03-22 13:01:22 · 462 阅读 · 0 评论 -
Laravel技巧集锦(20):使用jq/ajax实现文章点赞/取消点赞
关于点赞业务逻辑实现请参照上一篇文章Laravel技巧集锦(十):使用关联模型(点赞-文章-用户)下面重点讲一下用ajax进行无刷新点赞/取消点赞的功能1、view(用户已经点赞,则显示红心、红字点赞数量;用户未点赞,则显示灰心、灰字点赞数量)@if($post->zan(\Auth::id())->exists()) <i style="font-siz...原创 2019-03-20 16:13:10 · 651 阅读 · 0 评论 -
Laravel技巧集锦(19):多视图共享数据
实际开发时,我们需要多个视图共享同一个数据,通常由下列三种方法1、每个页面使用该数据都使用DB::all()获取数据 (不推荐)缺点:每次都要在控制器中使用查询函数,过程繁琐不推荐2、所有页面共享视图(推荐)优点:过程简单方便(推荐)方法如下:(1)AppServiceProvider.php中$topics = \App\Topic::all();$posts =...原创 2019-03-19 22:06:51 · 302 阅读 · 0 评论 -
Laravel技巧集锦(18):使用middleware中间件设置未登录用户禁止访问的路由
1、创建中间件php artisan make:middleware CheckLogin2、在App\Http\Middleware\CheckLogin.php中写入处理过程 public function handle($request, Closure $next) { if(!isset(\Auth::user()->name)){ ...原创 2019-03-19 21:19:35 · 613 阅读 · 0 评论 -
Laravel技巧集锦(17):用戶登陆后返回登陆前的页面
思路分析:1、用户由a页面跳转到登录页面;用session保存a页面(上一页面)的url2、用户登录成功后,跳转到session中保存的url具体步骤1、引入urluse Illuminate\Support\Facades\URL;2、保存url$request->session()->put('redirectPath', URL::previous...原创 2019-03-18 16:50:17 · 449 阅读 · 0 评论 -
Laravel技巧集锦(16):版本5.1.x以后使用Html、Form
1、安装拓展composer require laravelcollective/html2、config\app.php中providers数组中'providers'=>[ //... Collective\Html\HtmlServiceProvider::class, //...],3、config\app.php中aliases数组中...原创 2019-03-14 13:19:50 · 116 阅读 · 0 评论 -
Laravel技巧集锦(16):使用DB::listen查找慢SQL
1、AppServiceProvider.php中\DB::listen(function ($query){ $sql = $query->sql; $bindings = $query->bindings; $time = $query->time; if($time>10)...原创 2019-03-13 20:44:06 · 3166 阅读 · 0 评论