我在laravel 5.5中开发了一个CRUD应用程序 所有方法在本地laravel中工作正常(我的意思是使用命令php artisa serve启动的“模拟器”),但是在xampp中部署应用程序后,我的控制器中的方法存储停止工作(只是这个)!
在我的web.php中,我添加了这条路线:
Route::resource('example','exampleControllerView');
命令php artisan的结果:
POST | example | example.store | App\Http\Controllers\exampleControllerView@store
| | GET|HEAD | example | example.index | App\Http\Controllers\exampleControllerView@index
| | GET|HEAD | example/create | example.create | App\Http\Controllers\exampleControllerView@create
| | GET|HEAD | example/{example} | example.show | App\Http\Controllers\exampleControllerView@show
| | PUT|PATCH | example/{example} | example.update | App\Http\Controllers\exampleControllerView@update
| | DELETE | example/{example} | example.destroy | App\Http\Controllers\exampleControllerView@destroy
| | GET|HEAD | example/{example}/edit | example.edit | App\Http\Controllers\exampleControllerView@edit
这是我控制器中的方法存储
public function store(Request $request)
{
$request->validate([
'name' => 'required|min:4',
'description'=> 'required',
]);
$example = example::create(['name' => $request->name,'description' => $request->description]);
return redirect('/example/'.$example->id);
}
这是视图创建(网址:http://localhost/project/public/example/create):
<form action="/example" method="post">
{{ csrf_field() }}
<div class="form-group">
<label for="title">example nome</label>
<input type="text" class="form-control" id="taskTitle" name="name">
</div>
<div class="form-group">
<label for="description">example descrizione</label>
<input type="text" class="form-control" id="exampleDescription" name="description">
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<button type="submit" class="btn btn-primary">Submit</button>
在提交按钮后,我在新页面中看到了这个uri:
http://localhost/example
并在页面中出现404错误:找不到对象! 此服务器上不存在请求的URL。
我认为这是路由和网址的问题,但我不知道为什么在本地工作正常......
感谢进步
答案 0 :(得分:0)
更改此行 -
<form action="/example" method="post">
对此 -
<form action="/project/public/example" method="post">
更好地使用Laravel Collective,这会自动配置您的基本路径,并具有许多其他好处,例如csrf protection
。
答案 1 :(得分:0)
您的代码应该可以正常运行。它将用户重定向到具有已创建实体ID的show
方法。而不是使用模型绑定,尝试这样做:
public function show($id)
{
dd('The show method was executed and ID is ' . $id);
....
}