我无法更新laravel 5中的字段

问题描述 投票:0回答:3

我的laravel代码中的Get,Post,Delete是可以的。但我无法更新该领域。

BookController.php中的函数更新

$ data = $ this-> request-> all();

如果显示dd($ data),则为null。

什么理由?请帮帮我。

BookRequest.php代码:

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class BookRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'name' => 'required|max:255',
            'coment' => 'required'
        ];
    }
}

BookController.php代码:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Book;
use Illuminate\Http\Response;
use App\Http\Requests\BookRequest;
class BookController extends Controller
{
protected $request;
protected $book;
public function __construct(Request $request, Book $book) {
    $this->request = $request;
    $this->book = $book;
}
public function update(BookRequest $request, $id) {
    $data = $this->request->all();
    $book = $this->book->find($id);
    $book->name = $data['name'];
    $book->coment = $data['coment'];
    $book->save();
    return response()->json(['status' => Response::HTTP_OK]);
}
}
laravel
3个回答
1
投票

如果我是你,我将替换控制器,如下所示:

<?php
namespace App\Http\Controllers;


use App\Book;
use Illuminate\Http\Response;
use App\Http\Requests\BookRequest;

class BookController extends Controller
{
    public function update(BookRequest $request, $id) {

        $book = Book::find($id);
        $book->update($request->all());
        return response()->json(['status' => Response::HTTP_OK]);
     }
}

如果您已设置Route:model binding,那么您可以更好地简化Code​​。下面的代码仅适用于路径文件web.php中的Route :: model设置。

查看此文档以获取更多详细信息:

https://laravel.com/docs/5.6/routing#route-model-binding

public function update(BookRequest $request, Book $book) {
    $book->update($request->all());
    return response()->json(['status' => Response::HTTP_OK]);
 }

0
投票

试试这个:-

$request->all();

代替

$this->request->all()

0
投票

我已经解决了。

我的要求:http://127.0.0.1:8000/api/book POST,key:_method:PUT

更新代码

$data = $request->all();
$book = Boook::find($id);
$book->name = $data['name'];
$book->coment = $data['coment'];
$book->save();

问候。

© www.soinside.com 2019 - 2024. All rights reserved.