我正在尝试使用Create
按钮添加元素,但是恢复无法正常进行。我没有错误消息...但是我的Delete
按钮效果很好。
在我的AdminController
中,我有这个:
class AdminController extends Controller
{
public function getHome(){
$devis = Devis::all()->sortByDesc("created_at");
return view('admin.devis.home', compact('devis'));
}
public function destroy(Devis $devis)
{
$devis->delete();
return redirect('/admin');
}
public function create()
{
return view('admin.devis.create');
}
public function store(Request $request)
{
$request->validate([
'firstname' => 'required',
'lastename' => 'required'
]);
Devis::create($request->all());
return redirect()->route('admin.devis.home')
->with('success', 'un étudiant a été crée');
}
}
我认为控制器是正确的。
在我的文件夹View => Admin => Devis
中,我有2个文件:
Home.blade.php
@section('content')
<div class="px-content">
<div class="page-header">
<div class="row">
<div class="col-md-4 text-xs-center text-md-left text-nowrap">
<h1><i class="px-nav-icon ion-android-apps"></i>Listing </h1>
</div>
<hr class="page-wide-block visible-xs visible-sm">
<!-- Spacer -->
<div class="m-b-2 visible-xs visible-sm clearfix"></div>
</div>
</div>
<div class="row">
<div class="panel">
<div class="panel-body">
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Firstname</th>
<th>Lastename</th>
<a class="btn btn-sm btn-success" href="{{ route('devis.create') }}">Create</a>
</tr>
</thead>
@foreach($devis as $item)
<tr>
<td> {{$item->firstname}} </td>
<td> {{$item->lastname}} </td>
<td> <a href="/devis/delete/{{$item->id}}" class="btn btn-danger"><span class="left ion-close"></span></a></td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
</div>
</div>
@endsection
然后create.blade.php
@section('content')
<div class="px-content">
<div class="page-header">
<div class="row">
<div class="col-md-4 text-xs-center text-md-left text-nowrap">
<h1><i class="px-nav-icon ion-android-apps"></i>Devis</h1>
</div>
<hr class="page-wide-block visible-xs visible-sm">
<!-- Spacer -->
<div class="m-b-2 visible-xs visible-sm clearfix"></div>
</div>
</div>
<div class="row">
<div class="panel">
<div class="panel-body">
<div class="table-responsive">
<form class="panel-body" action="/devis" method="POST">
@csrf
<fieldset class="form-group">
<label for="form-group-input-1">FirstName</label>
<input type="text" name="firstname" class="form-control" id="form-group-input-1">
</fieldset>
<fieldset class="form-group">
<label for="form-group-input-1">Lastname</label>
<input type="text" name="lastname" class="form-control" id="form-group-input-1" >
</fieldset>
<button type="submit" class="btn btn-primary pull-right">Create</button>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
在路线文件夹中,我有这个
route::resource('devis','AdminController');
Route::post('/devis', 'AdminController@store');
Route::get('/devis/delete/{devis}', 'AdminController@destroy');
感谢您的帮助。
答案 0 :(得分:2)
好吧,首先,有时您使用姓氏,有时您使用姓氏,并且验证器无法识别,因为它们是不同的名称。
第二,您没有看到任何错误,因为您尚未实现flash_message来查看会话内部的错误。
$request->validate([
'firstname' => 'required',
'lastename' => 'required'
]);
<input type="text" name="lastname" class="form-control" id="form-group-input-1" >
答案 1 :(得分:1)
实际上,通过如下所示的validate函数验证名称时,您会遇到命名问题: 应该是
$request->validate([
'firstname' => 'required',
'lastname' => 'required'
]);
代替:
$request->validate([
'firstname' => 'required',
'lastename' => 'required'
]);
您使用的是lastename
而不是lastname
。
Validator方法实际上应该具有正确的索引,否则它将不会存储在数据库中。
希望会有所帮助。