继承自 Apicontroller 的 API 控制器,是不是不能通过中间件做用户权限验证?

我如下操作之后 接口就不响应了

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/5/26
 * Time: 9:04
 */

namespace App\Http\Controllers\Api;

use App\Models\Advertisement;
use Illuminate\Http\Request;

/** 租户广告 控制器  advertisement
 * Class AdvertisesController
 * @package App\Http\Controllers\Api
 */
class AdvertisesController extends ApiController
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function index(Request $request)
    {
        $uid = $request->get('uid');
        if ($this->isValid($uid)) {
            $ads = Advertisement::where(['uid' => $uid])->get(['id', 'name', 'img']);
        } else {
            $ads = Advertisement::get(['id', 'name', 'img']); // 查看所有
        }

        return $this->myPaginate($ads);
    }

    public function store(Request $request)
    {
        $name = $request['name'];
        $content = $request['content'];
        $href = $request['href'];
        $img = $request['img'];
        if (!$this->isValid($img)) {
            return response('请上传封面图~', 201);
        }
        if (!$this->isValid($name)) {
            return response('请填写标题~', 201);
        }
        if (!$this->isValid($content)) {
            return response('请填写内容', 201);
        }

        $ad = Advertisement::create(['name' => $name, 'content' => $content, 'href' => $href, 'img' => $img]);
        if ($ad) {
            return response('添加成功!', '200');
        }
    }

}
@李山河
你看我吊吗啊
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
你看我吊吗啊
最佳答案

@zedisdog 请求index函数 ,卡住了,半天才好。。忘了放apicontroller 。。。其实是调用了apihelper


class ApiController extends Controller
{

    use ApiHelpers;

}
5年前 评论
讨论数量: 7

不响应具体是个什么情况? ApiController 里面是什么?

5年前 评论
你看我吊吗啊

@zedisdog 请求index函数 ,卡住了,半天才好。。忘了放apicontroller 。。。其实是调用了apihelper


class ApiController extends Controller
{

    use ApiHelpers;

}
5年前 评论

能把 isValidmyPaginate 贴出来看看吗?

5年前 评论
你看我吊吗啊
    protected function isValid($string)
    {
        if (null == $string || '' == $string) {

            return false;
        } else {
            return true;
        }
    }

    protected function myPaginate($data, $page = 1, $perPage = 10)
    {
        if (!is_array($data)) {
//            return false;
            $data = json_decode($data);
        }
        $current_page = $page <= 0 ? 1 : $page;// 如果页码<0,就重置1 ,
        return new LengthAwarePaginator(array_slice($data, ($current_page - 1) * $perPage, $perPage),
            count($data), $perPage, $current_page, ['path' => Paginator::resolveCurrentPath(),                // 注释2
                'pageName' => 'page']);

    }

可以忽略这俩函数的因素,我是在加上

 public function __construct()
    {
        $this->middleware('auth');
    }

的时候才卡死的

5年前 评论
你看我吊吗啊

@zedisdog 用户的权限控制 不用单独配置吧,我记得 框架默认配置好了已经

5年前 评论

这个我就看不出来哪里有问题了,照理说继承几个 controller 然后加 middleware 都不会有问题。以前我也像你这个做过也没有问题。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!