gpt4 book ai didi

html - Laravel Controller 不处理我的 View 参数

转载 作者:行者123 更新时间:2023-11-28 02:26:32 24 4
gpt4 key购买 nike

伙计们,我真的需要你们的帮助。

我有这个 Controller :

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Book;

class BookController extends Controller
{
public function index()
{
$books = Book::orderBy('id', 'DESC')->paginate(5);
return view('index', compact('books'));
}

public function create()
{
return view('add');
}

public function store(Request $request)
{
$this->validate($request, ['titulo' => 'required', 'npaginas' => 'required', 'edicion' => 'required', 'autor' => 'required', 'resumen'=>'required', 'precio'=>'required']);
Book::create($request->all());
return redirect()->route('index');
}
public function edit($id){


return view('edit');
}
public function update(Request $request, $id)
{
$this->validate($request, ['titulo' => 'required', 'npaginas' => 'required', 'edicion' => 'required', 'autor' => 'required', 'resumen'=>'required', 'precio'=>'required']);
book::find($id)->update($request->all());
return redirect()->route('book.index');
}

public function destroy($id)
{
Book::find($id)->delete();
return redirect()->route('index');
}
}

我有一个 View 将 book 中的 id 发送到 editdestroy 函数。但是,我只收到 404 错误。

这是 View :

@if($books->count())
@foreach($books as $book)
<tr>
<td>{{$book->titulo}}</td>
<td>{{$book->npaginas}}</td>
<td>{{$book->edicion}}</td>
<td>{{$book->autor}}</td>
<td>{{$book->resumen}}</td>
<td>${{$book->precio}}</td>
<td><a class="btn btn-primary btn-xs margen-boton"
href="{{ action('BookController@edit', $book->id) }}"><span
class="fas fa-pencil-alt"></span></a>
</td>

<td>
<form action="{{ action('BookController@destroy', $book->id )}}"
method="post">
{{csrf_field()}}
<input name="_method" type="hidden" value="DELETE">
<button class="btn btn-danger btn-xs margen-boton2" type="submit"><span
class="fas fa-trash-alt"></span></button>
</form>
</td>
</tr>
@endforeach
@else
<tr>
<td colspan="8" class="text-center"><p>Sin libros en el inventario</p></td>
</tr>
@endif

事实是我更改了 book 变量名,但它没有做任何事情。

我尝试将 Controller 名称更改为 View ,因为我认为存在问题。但这不起作用。我真的不知道该怎么办。

如果你能帮我,那就太棒了

最佳答案

在简单的例子中遵循这些步骤

在你的 web.php 文件中使用这个

Route::get("/edit/{id}", ["as" => "books.edit", "uses" => "BookController@edit"]);

之后 BookController 中的代码应该是这样的

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Book;

class BookController extends Controller
{
public function index()
{
...
}

public function create()
{
...
}

public function store(Request $request)
{
....
}
public function edit($id){


return view('edit', [
'id' => $id
]);
}

}

在你的 index.blade.php 文件中,你需要像这样创建链接

<a class="btn btn-primary btn-xs margen-boton"
href="{{ route('books.edit', ['id' => $book->id]) }}">

<span class="fas fa-pencil-alt"></span>
</a>

这将完全按照您的要求工作。

关于html - Laravel Controller 不处理我的 View 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53706757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com