javascript - 如何在 Laravel 5.4 中验证 POST 数据?

标签 javascript php html mysql laravel

我正在 Laravel 5.4 中测试 API。我现在正在通过 API 存储记录。我在如何使用 Request::input() 或 Input::get() 验证 POST 数据方面遇到了一些问题。

类(class) Controller .php

    <?php

    namespace App\Http\Controllers;

    use App\Http\Requests;
    use App\Lesson;
    use App\Acme\Transformers\LessonTransformer;
    //use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Input;


use App\Http\Controllers\Controller;

class LessonsController extends ApiController
{

    /**
     * @var Acme\Transformers\LessonTransformer
     */
    protected $lessonTransformer;

    function __construct(LessonTransformer $lessonTransformer)
    {
        $this->lessonTransformer = $lessonTransformer;
       // $this->middleware('sentry.auth')->only('post'); // basic level of protection for creating a lession
    }


    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     * If we are using basic authentication, we should be using SSL
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store()
    {

        if( ! Input::get('title') || ! Input::get('body')){
            return $this->setStatusCode(422)->respondWithError('Parameters failed validation for a lesson.');
        }

        Lesson::create($request->all());

        return $this->respondCreated('Lesson successfully created.');

    }

    /**
     * Display the specified resource.
     * 
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $lesson = Lesson::find($id);

        if( ! $lesson) {

            return $this->respondNotFound('Lesson does not exist');


        }

        return $this->respond([

            'data' => $this->lessonTransformer->transform($lesson)

        ]);

    }

}

当我使用 POST 请求通过 POSTMAN 测试上面的代码时。我收到提示“{"error":"Parameters failed validation for a lesson.","status_code":422}" . 我在尝试添加数据或未添加数据时收到错误消息。

您知道如何更正我的 store() 代码吗?感谢您的帮助。

最佳答案

要在 Laravel 中验证表单数据,只需使用“Laravel Form Requests”。这允许您使用 Laravel 的一些预定义验证规则来验证请求中的表单数据,如果需要,您还可以创建自定义 Laravel 验证逻辑。

根据 Laravel 文档:

Form requests are custom request classes that contain validation logic.

它将简化您的验证逻辑,使您的代码整洁并让您处理复杂的验证。

关于javascript - 如何在 Laravel 5.4 中验证 POST 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43384300/

相关文章:

javascript - vbscript Mid 函数的 javascript 等效函数是什么?是 substring() 还是 substr()?

javascript - 如何解开多个父元素

php - 如何将自定义数据发送到 paypal 并使用 post 在返回 url 中取回?

php - MySQL 按 asc 排序(如果优先级字段 1 移动到顶部)

javascript - 寻找创建登陆页面并自动复制它 x 次的解决方案 - 每次都有不同的页脚

javascript - 如何在函数体中获取实例或类

javascript - Android:有没有办法从我的应用程序执行 JavaScript?

PHP mail() BCC - 仅显示 To : header 中的最终收件人地址

html - 文字装饰 :none formatting not working when sending HTML emails with Outlook 2007

html堆栈顺序