为了账号安全,请及时绑定邮箱和手机立即绑定

laravel 5.8 中的异常:尝试编辑数据时尝试获取非对象的属性

laravel 5.8 中的异常:尝试编辑数据时尝试获取非对象的属性

PHP
慕婉清6462132 2022-09-17 21:42:27
最近,我开始使用Laravel 5.8,我正在尝试制作编辑按钮,该按钮将更新数据库中的行。当编辑按钮点击时,拉拉维尔会引发这样的错误这是我的控制器:    public function edit($id_book){        $book = Books::find($id_book);        return view('/books',['book'->$book]);    }    public function UploadEdit(Request $request){        DB::table('books')->where('id_book',$request->id_book)->update([            'judul' => $request->judul,            'gambar' => $request->gambar,            'kategori' => $request->kategori,            'deskripsi' => $request->deskripsi,            'ketersediaan' => $request->ketersediaan,            'lokasi' => $request->lokasi        ]);        return redirect()->back();    }这是我的模型:    class Books extends Model    {        protected $table = "books";        protected $primaryKey = "id_book";       protected $fillable = [           'judul',           'gambar',           'kategori',           'deskripsi',           'ketersediaan',           'lokasi'       ];    }我试图用控制器中的更改编辑功能解决这个问题:从这个    public function edit($id_book){        $book = Books::find($id_book);        return view('/books',['book'->$book]);    }对此    public function edit($id_book){        $book = Books::find($id_book);        return view('/books',compact('book'));    }和这个:    public function edit($id_book){         $book = Books::find($id_book);         return view('/books')->withBooks('$book');    }但它不起作用
查看完整描述

5 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我认为错误显示是错误的。你应该使用方法。id_bookfindOrFail()


public function edit($id_book){

    $book = Books::findOrFail($id_book);

    return view('/books',compact('book'));

}


查看完整回答
反对 回复 2022-09-17
?
HUH函数

TA贡献1836条经验 获得超4个赞

试试这个


public function edit($id_book) {

   $book = Book::find($id_book);


   return view('books.edit', compact('book'));

}


查看完整回答
反对 回复 2022-09-17
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

似乎你用来分配价值->=>

改变

return view('/books',['book'->$book]);

return view('/books',['book' => $book]);


查看完整回答
反对 回复 2022-09-17
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

将第 58 行(函数的返回语句)更改为:edit()

return view('/books',compact('book'));


查看完整回答
反对 回复 2022-09-17
?
MMTTMM

TA贡献1869条经验 获得超4个赞

试试这个:


 public function edit($id_book){

        $book = Books::where('id_book', $id_book)->first();

        return view('/books', compact('book'));

    }


查看完整回答
反对 回复 2022-09-17
  • 5 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信