perfectboook

1403 经验值

站长文本编辑器的上传图片post过去没有token为什么可以上传成功?我post过去没有token却报错。

有两个表tasks和users,加了个多对多的关系用来获取任务的参与者,中间表是task_user。现在有一个需求要获取参与人数最多的一条任务。我现在的方法是用一条sql语句实现的:SELECT * from tasks order by (select count(id) from task_user where task_user.task_id = tasks.id) DESC limit

这里是验证规则:public function rules() { return [ 'user_id' => 'required|integer', 'news_id' => 'integer|required', 'content' => 'required' ]; }处理代码部分:public function store(CreateNewsCommentsRequest $req

解决了,在api的BaseController里面加上一个函数:

public function resourceValidate($rules, $attributes = [])
{
    $playload = Request::all();
    $validator = Validator::make($playload, $rules, [], $attributes);
    if ($validator->fails()) {
        throw new StoreResourceFailedException('validate_failed', $validator->errors());
    }
}

然后在控制器里面调用就行了。

$this->resourceValidate([
    'news_id' => 'integer|required',
    'content' => 'required'
],[
    'content' => '评论内容',
    'news_id' => '新闻ID'
]);

多谢群里的 @茄子 小伙伴。

这里是验证规则:

public function rules()
{
    return [
        'user_id' => 'required|integer',
        'news_id' => 'integer|required',
        'content' => 'required'
    ];
}

处理代码部分:

public function store(CreateNewsCommentsRequest $request)
{
    $news_id = $request->get('news_id');
    return $news_id;
}

我使用的是dingoapi,在远程post的。

@leec 使用

php artisan make:controller Admin/AdminController

创建的话,自动就给你加好命名空间了,不用手动设置的。

创建的时候:

php artisan make:controller Admin/AdminController

这样就能找到了。或者现在运行下composer dump-autoload然后看下应该就能找到了。

@daryl 表示从来没有用过group by。。查文档写出来一句:

select tasks.id,task_user.task_id ,count(task_user.task_id) as counts from tasks , task_user group by tasks.id HAVING tasks.id = task_user.task_id order by counts desc limit 1

貌似好多了。

有两个表tasks和users,加了个多对多的关系用来获取任务的参与者,中间表是task_user。现在有一个需求要获取参与人数最多的一条任务。我现在的方法是用一条sql语句实现的:

SELECT * from tasks order by (select count(id) from task_user where task_user.task_id = tasks.id) DESC limit 1

不过这样的话任务多了,会执行很多次 

select count(id) from task_user where task_user.task_id = tasks.id

大家帮忙看下有没有别的解决办法,sql语句方面是我的弱项。。

他使用了token,是通过ajax提交的,在header里面有一个

<meta id="token" name="token" value="7rg6yxIvZS5vYHv323FqYzFgwcejCsVS8RTFJrby">

然后上传的时候也用到了:

var editor = new Simditor({
    textarea: $('#simditor'),
    cleanPaste:true,
    toolbar:['bold','italic','blockquote','code','link','image'],
    upload: {
        url: '/editor/images',
        params:{
            '_token': document.querySelector('#token').getAttribute('value')   //这里一起提交过去了。
        }
    },
    codeLanguages:[
        {name: 'PHP', value: 'php'},
        { name: 'HTML', value: 'html' },
        { name: 'JavaScript', value: 'js' },
        { name: 'CSS', value: 'css' }
    ]
    //optional options
});

看廖雪峰的吧,简单易懂,一天学会。。 看这里