![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Laravel技巧集锦
八点博客(钏)
专注分享技术交流
展开
-
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 · 218 阅读 · 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 · 273 阅读 · 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 · 297 阅读 · 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 · 401 阅读 · 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 · 347 阅读 · 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 · 946 阅读 · 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 · 451 阅读 · 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 · 369 阅读 · 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 · 3159 阅读 · 0 评论 -
Laravel技巧集锦(15):使用load、with预加载
1、使用load$posts = Post::all();$posts->load('user');2、使用with$posts = Post::with('user')->all();原创 2019-03-13 20:28:10 · 1450 阅读 · 0 评论 -
Laravel技巧集锦(30):使用api_toke前后端分离
查阅可知:config\auth.php中 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ],//api 'api' => [ 'driv...原创 2019-04-17 16:15:21 · 419 阅读 · 0 评论 -
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 · 245 阅读 · 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 · 505 阅读 · 0 评论 -
Laravel技巧集锦(42):实现用户设置
分析:实际开发中,个人用户资料往往需要不断增加,比如昵称、邮箱、年龄。后期随着业务的增加可能会需要增加身高、体重、城市等信息,如果采用一个资料对应一个字段的方法,后期维护和可用性都会大大下降,因此可以采用类似json的方式存储资料,比如{"name":"tom","age","18"}一个字段便可存储多个资料,且拓展性可用性都比较高。1、数据库设计Schema::create('us...原创 2019-04-23 20:47:04 · 208 阅读 · 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 · 1115 阅读 · 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 · 1590 阅读 · 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 · 778 阅读 · 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 · 1207 阅读 · 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 · 1411 阅读 · 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 · 483 阅读 · 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 · 1374 阅读 · 1 评论 -
Laravel技巧集锦(14):使用自带的路由缓存、配置缓存、类加载优化
1、路由缓存(路由中不能含有匿名函数、include包含文件)【缓存文件位置bootstrap\cache\routes.php】php artisan route::cache2、配置缓存【缓存文件位置bootstrap\cache\config.php】php artisan config::cache3、优化类加载(原本基于psr-4加载,类似递归,比较耗时,因此优化)【...原创 2019-03-13 19:53:10 · 774 阅读 · 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 · 965 阅读 · 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 · 649 阅读 · 0 评论 -
Laravel技巧集锦(12):使用scope实现用户文章投稿功能
1、Model Topic.php中 //属于这个专题的所有文章 public function posts(){ return $this->belongsToMany(\App\Post::class,'post_topics','topic_id','post_id'); } //专题的文章数目,用于withCount pub...原创 2019-03-05 21:13:16 · 352 阅读 · 0 评论 -
Laravel技巧集锦(七):使用wangeditor富文本编辑文字并上传图片
1、下载http://www.wangeditor.com2、解压后将CSS、JS、Font文件夹复制到Public目录下3、引入CSS、JS4、html页面中<!--csrf保护--><meta name="csrf-token" content="{{csrf_token()}}"><textarea id="content" style=...原创 2019-03-02 14:02:26 · 734 阅读 · 0 评论 -
Laravel技巧集锦(六):使用validate验证表单数据
1、控制器中public function add(){ //validate 验证 $rules = [ 'title'=>'required|string|max:100|min:5', 'content'=>'required|min:10' ]; ...原创 2019-03-02 13:46:03 · 1289 阅读 · 0 评论 -
Laravel技巧集锦(五):使用Model::create快速插入数据
1、Model中设置class Post extends Model{ //set the table //protected $table = ''; //allow array protected $fillable = ['title','content']; //allowed //protected $guarded = []; ...原创 2019-03-02 11:58:33 · 5518 阅读 · 0 评论 -
Laravel技巧集锦(四):使用str_limit截取字符并默认显示超出部分
1、模板中使用{{str_limit($post->content,100,'...')}} str_limit(content,length,defaultShow)原创 2019-03-02 10:17:28 · 2271 阅读 · 0 评论 -
Laravel技巧集锦(三):使用pignate分页
1、控制器中使用$posts = Post::orderBy('created_at','desc')->paginate(5);2、模板中显示页码按钮{{$posts->links()}}原创 2019-03-02 10:13:01 · 330 阅读 · 0 评论 -
Laravel技巧集锦(二):使用carbon.nesbot.com显示时间样式
1、介绍:Carbon:A simple PHP API extension for DateTime.官网:https://carbon.nesbot.com/文档:https://carbon.nesbot.com/docs2、使用{{$post->created_at->toFormattedDateString()}}使用toFormattedDate...原创 2019-03-02 10:08:09 · 762 阅读 · 0 评论 -
Laravel技巧集锦(一):使用Fake/Generator和tinker填充数据
1、\database\factories\ModelFactory.php 添加代码:$factory->define(App\Post::Class,function (Faker\Generator $faker){ return[ 'title'=>$faker->sentence(6), 'content'=>$faker...原创 2019-03-02 10:01:09 · 812 阅读 · 0 评论 -
Laravel技巧集锦(十一):使用关联模型(关注-粉丝)
思路分析:我的粉丝 一对多 hasMany我关注的人 一对多 hasMany1、在model User.php中返回当前登录用户(我)的粉丝//查找我的粉丝意味着这里我是明星,我的角色是star_idpublic function fans(){ return $this->hasMany(\App\Fan::class,'star_id','id'...原创 2019-03-04 23:10:10 · 360 阅读 · 1 评论 -
Laravel技巧集锦(八): 授权策略(Policy)
Policy(即策略)是在特定模型或者资源中组织授权逻辑的类,用来处理用户授权动作。比如在博客程序中会有一个 Post 模型,这个模型就会有一个相应的 PostPolicy 来对用户的操作进行授权,判断用户是否有该操作的权限。Policy 其实就是将校验的逻辑从控制器转移到相对应的模型策略 (PostPolicy) 中。1、使用php artisan make:policy PostPol...原创 2019-03-02 21:22:01 · 910 阅读 · 0 评论 -
Laravel技巧集锦(九):使用关联模型(评论-文章-用户)
分析:评论--文章 多对一 belong文章--评论 一对多 hasMany文章--用户 多对一 belong评论--用户 多对一 belong1、Post.php 和 Comment.php 中添加Post.php<?phpnamespace App;use Illuminate\Databas...原创 2019-03-02 23:34:01 · 636 阅读 · 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技巧集锦(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 · 445 阅读 · 0 评论 -
Laravel技巧集锦(13):使用Gate实现权限管理
1、AuthServiceProvider.phppublic function boot() { // $this->registerPolicies(); $permissions = \App\AdminPermission::all(); foreach ($permissions as $permission){ ...原创 2019-03-12 18:14:18 · 642 阅读 · 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 · 649 阅读 · 0 评论 -
Laravel技巧集锦(19):多视图共享数据
实际开发时,我们需要多个视图共享同一个数据,通常由下列三种方法1、每个页面使用该数据都使用DB::all()获取数据 (不推荐)缺点:每次都要在控制器中使用查询函数,过程繁琐不推荐2、所有页面共享视图(推荐)优点:过程简单方便(推荐)方法如下:(1)AppServiceProvider.php中$topics = \App\Topic::all();$posts =...原创 2019-03-19 22:06:51 · 297 阅读 · 0 评论