博客文章
最近发表的话题
最近发表的评论
  • SMProxy,让你的数据库操作快三倍! at 4天前

    谢谢分享,已Star

  • Laravel 多 Guard 下,如何处理未登录时都跳转同一个登录界面的问题。 at 1个月前

    @Donald2334 执行php artisan route:list 看一下create course navbar 按钮跳转的页面 是否有guard,如果没有的话,访问时拿不到登陆信息的,加上对应的guard 就可以了

  • Laravel 多 Guard 下,如何处理未登录时都跳转同一个登录界面的问题。 at 1个月前

    @Donald2334 你的Admin登陆后访问的路由没有加上admin guard 吧,这样是拿不到用户数据的
    还有Auth::user() 直接就能拿到Admin信息,前提是你这个路由里面只有一个 guard

  • 遇到 MySQL 8.0.11 的一些坑 at 2个月前

    @某某某 我这个只是针对用户设置的,不是全局使用mysql_native_password

  • 公司又倒闭,一怒之下自己搞,可结果。。。 at 2个月前

    创业维艰……

  • Laravel-dompdf 中文无法正常显示 at 3个月前

    @玄真子 后来用其他方式实现的 :see_no_evil:

  • 求问这个漂亮的图片是用啥工具做的? at 4个月前

    file

    OmniGraffle 做的,跟人感觉OmniGraffle比Visio好用

  • 给 Eloquent 的 whereHas 加个 where in 的优化 at 4个月前

    虽然知道有这个性能问题,但是一直没有去改造……感谢分享! :stuck_out_tongue_winking_eye: :+1:

  • 遇到 MySQL 8.0.11 的一些坑 at 4个月前

    @sunny-w Laravel 什么版本?

  • 多字段登录通用解决方案 at 4个月前

    @waynet 嗯,这倒是,当时水平有限,考虑不到数据库索引问题!不过大项目肯定会吧认证模块做成微服务,有专门的架构肯定不会这样去做……

  • 「新轮子」一个基础身份证信息提取和验证组件,采集用户实名制信息更简单 at 4个月前

    乍一看,还以为输入身份号可以查看所有信息呢,白激动了一把 :joy:
    支持一下 :+1:

  • Laravel 广播系统例子 at 5个月前

    :+1:

  • Laravel 程序架构设计思路:使用动作类 at 5个月前

    是事件进行解耦是不是更好一些,如果数据不是要求强一致性的话

  • 无限极分类 at 5个月前
  • Laravel5.5+passport 放弃 dingo 开发 API 实战,让 API 开发更省心 at 5个月前

    根据这篇文章,自定义了一个HelperFunction

    <?php
    
    use Symfony\Component\HttpFoundation\Response;
    use Illuminate\Pagination\LengthAwarePaginator;
    
    if (! function_exists('stored')) {
        /**
         * 创建资源成功后响应
         *
         * Date: 21/03/2018
         * @author George
         * @param $data
         * @param string $message
         * @return \Illuminate\Http\JsonResponse
         */
        function stored($data, $message = '创建成功') {
            return respond($data, $message);
        }
    }
    
    if (! function_exists('updated')) {
        /**
         * 更新资源成功后响应
         *
         * Date: 21/03/2018
         * @author George
         * @param $data
         * @param string $message
         * @return \Illuminate\Http\JsonResponse
         */
        function updated($data, $message = '更新成功') {
            return respond($data, $message);
        }
    }
    
    if (! function_exists('deleted')) {
        /**
         * 删除资源成功后响应
         *
         * Date: 21/03/2018
         * @author George
         * @param string $message
         * @return \Illuminate\Http\JsonResponse
         */
        function deleted($message = '删除成功') {
            return message($message, Response::HTTP_OK);
        }
    }
    
    if (! function_exists('accepted')) {
        /**
         * 请求已被放入任务队列响应
         *
         * Date: 21/03/2018
         * @author George
         * @param string $message
         * @return \Illuminate\Http\JsonResponse
         */
        function accepted($message = '请求已接受,等待处理') {
            return message($message, Response::HTTP_ACCEPTED);
        }
    }
    
    if (! function_exists('notFound')) {
        /**
         * 未找到资源响应
         *
         * Date: 21/03/2018
         * @author George
         * @param string $message
         * @return \Illuminate\Http\JsonResponse
         */
        function notFound($message = '您访问的资源不存在') {
            return message($message, Response::HTTP_NOT_FOUND);
        }
    }
    
    if (! function_exists('internalError')) {
        /**
         * 服务器端位置错误响应
         *
         * Date: 21/03/2018
         * @author George
         * @param $message
         * @param int $code
         * @return \Illuminate\Http\JsonResponse
         */
        function internalError($message = '未知错误导致请求失败', $code = Response::HTTP_INTERNAL_SERVER_ERROR) {
            return message($message, $code);
        }
    }
    
    if (! function_exists('failed')) {
        /**
         * 错误的请求响应
         *
         * Date: 21/03/2018
         * @author George
         * @param $message
         * @param int $code
         * @return \Illuminate\Http\JsonResponse
         */
        function failed($message, $code = Response::HTTP_BAD_REQUEST) {
            return message($message, $code);
        }
    }
    
    if (! function_exists('success')) {
        /**
         * 成功响应
         *
         * Date: 21/03/2018
         * @author George
         * @param $date
         * @return \Illuminate\Http\JsonResponse
         */
        function success($date) {
            return respond($date);
        }
    }
    
    if (! function_exists('message')) {
        /**
         * 消息响应
         *
         * Date: 21/03/2018
         * @author George
         * @param $message
         * @param int $code
         * @return \Illuminate\Http\JsonResponse
         */
        function message($message, $code = Response::HTTP_OK) {
            return respond([], $message, $code);
        }
    }
    
    if (! function_exists('respond')) {
        /**
         * 生成响应体
         *
         * Date: 21/03/2018
         * @author George
         * @param array $data
         * @param string $message
         * @param int $code
         * @param array $header
         * @return \Illuminate\Http\JsonResponse
         */
        function respond($data = [], $message = '请求成功', $code = Response::HTTP_OK, array $header = []) {
            if ($data instanceof LengthAwarePaginator) {
                return response()->json([
                    'resultCode' => $code,
                    'resultMessage' => $message,
                    'data' => $data->items(),
                    'current_page' => $data->currentPage(),
                    'from' => $data->firstItem(),
                    'per_page' => $data->perPage(),
                    'to' => $data->lastItem(),
                    'total' => $data->total(),
                ], $code, $header);
            }
            return response()->json([
                'resultCode' => $code,
                'resultMessage' => $message,
                'data' => $data ? $data : []
            ], $code, $header);
        }
    }
    

    在控制器里:

    public function index()
    {
        $companies = Company::query()->paginate(15);
        return success($companies);
    }
  • MySQL 主从复制 实例讲解 at 6个月前

    学习了 :+1:

  • deployer 实战经验分享 at 6个月前

    配合Git 的hooks 可以很好的实现自动化

  • 利用 Composer 的本地加载功能来优化你的扩展包开发工作流 at 6个月前

    这样就简单多了,请问封面图,用什么做的? :blush:

  • JWT 完整使用详解 at 6个月前

    确实,之前也是踩了不少坑,但是一直没时间分享,给你打Call

  • 高性能千万级定时任务管理服务 forsun Laravel 插件使用详解 at 6个月前

    感谢分享,收藏一下,后面要用到 :+1: