【问题标题】:Unable to Run Form Request Validation on Lumen无法在 Lumen 上运行表单请求验证
【发布时间】:2017-09-02 10:57:49
【问题描述】:

我们在 Laravel 中使用表单请求验证。我正在尝试对 lumen 使用相同的请求,但它不能像预期的那样工作。

用户控制器

<?php

namespace App\Http\Controllers;

use App\Http\Requests\User\UserPostRequest;
use App\Macx\Logic\Interfaces\IUserLogic;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class UserController extends Controller
{
    private $userLogic;
    public function __construct(IUserLogic $userLogic)
    {
        $this->userLogic = $userLogic;
    }

    public function post(UserPostRequest $request)
    {
        return $this->userLogic->post(Auth::user(), $request->all());
    }
}

UserPostRequest

<?php

namespace App\Http\Requests\User;

use Illuminate\Support\Facades\Request;

    class UserPostRequest extends Request
    {
        /**
         * Determine if the user is authorized to make this request.
         *
         *
         * @return bool
         */
        public function authorize()
        {
            return true;
        }


        /**
         * Get the validation rules that apply to the request.
         *
         * @return array
         */
        public function rules()
        {
            return [
                'name'=>'required|min:3|max:255',
                'surname'=>'required|min:3|max:255',
                'email'=>'required|email|unique:companies',
            ];
        }
    }

但是当我用一些帖子数据调用 /api/user/ 时,我收到了这个错误:

Call to undefined method App\Http\Requests\User\UserPostRequest::all()

注意:我刚刚看到 lumen 不支持文档中描述的表单请求验证:https://lumen.laravel.com/docs/5.4/validation

Lumen 不支持表单请求。如果你想使用表单请求,你应该使用完整的 Laravel 框架。

但是这个东西很有用,我还在努力寻找像表单请求验证这样的好解决方案。

【问题讨论】:

  • 你跑composer dump-autoload了吗?
  • 不,我可以在文档中找到相关信息。 Lumen 不支持表单请求验证。我正在尝试为此找到解决方案。 Lumen 不支持表单请求。如果你想使用表单请求,你应该使用完整的 Laravel 框架。

标签: php laravel lumen


【解决方案1】:

一般情况下,Lumen 不支持Form requests。如果你想使用表单请求,你应该使用完整的 Laravel 框架。 enter link description here

幸运的是,您可以在流明中使用https://github.com/ssi-anik/form-request

【讨论】:

    【解决方案2】:

    Lumen 是一个出色的微框架,可用于执行基于 API 的项目。今年我一直在做多个 Lumen 项目。客户和开发人员都喜欢它,因为它具有在 REST API 上工作的灵活性。如果你还不熟悉 Lumen,它是 Laravel 的精简版,它以速度为目标。 Lumen 包含 Laravel 中的大部分功能,但除此之外,它还删除了一些功能,例如有助于框架提高速度的 Session Driver。 Lumen 安装不包括会话,因为令牌主要用于基于 API 的后端而不是会话。

    关注这个Link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 2019-04-12
      • 2016-09-02
      • 2016-09-06
      • 2018-07-13
      • 1970-01-01
      相关资源
      最近更新 更多