[英]Data not storing in the DB [Laravel 5.5]
我正在使用Laravel 5.5。 我想将数据存储在数据库中,但是当我尝试这样做时,什么也没发生。 这是我的MarketController代码
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|unique:markets|max:255',
'website' => 'required',
'city' => 'required',
]);
Market::create($request->all());
return redirect('markets');
}
我的save.blade.php代码
<!DOCTYPE html>
<html>
<head>
<title>Create Market</title>
</head>
<body>
@extends('layouts.app')
@section('main')
<form action="{{ route('markets.store') }}" method="post">
{{ csrf_field() }}
<input type="hidden" name="_token" value="DaBSErIRWPPI">
<label for="name">Name</label>
<input type="text" name="name" id="name">
<label for="city">Location</label>
<input type="text" name="city" id="city">
<label for="website">Market's website</label>
<input type="text" name="website" id="website">
<button type="submit"><a href="{{route('markets.store')}}">Add Market</a>
</button>
</form>
</form>
这是index.blade.php代码
<h1><a href="{{ route('markets.create', $market) }}">Add Market</a></h1>
什么都没发生。 请帮忙。 感谢你!
您的路线应作为我的示例显示,因为我不知道您的路线页面标题:
Route::post('store', 'MarketController@store')->name('store');
实际上,您应该运行: php artisan make:request StoreRequest
在StorageRequest.php中更改authorize
从return false;
return true;
然后添加规则:
return [
'name' => 'required|max:255',
'website' => 'required',
'city' => 'required'
]
然后可以简化您的控制器:
public function store(StoreRequest $storeRequest)
{
$form = $storeRequest->all();
Market::create([
'name' => $form['name'],
'website' => $form['website'],
'city' => $form['city']
]);
return redirect('markets');
}
您的表格被塞满了,这是一个细分的版本:
<form action="{{ route('store') }}" method="post">
{{ csrf_field() }}
<label for="name">Name</label>
<input type="text" name="name" id="name">
<label for="city">Location</label>
<input type="text" name="city" id="city">
<label for="website">Market's website</label>
<input type="text" name="website" id="website">
<input type="submit" value="Submit">
</form>
更新
您的示例不会将错误返回到表单,因此这是另一个更新的版本:
<form action="{{ route('store') }}" method="post">
{{ csrf_field() }}
<label for="name">Name</label>
<input type="text" name="name" id="name">
@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
<label for="city">Location</label>
<input type="text" name="city" id="city">
@if ($errors->has('city'))
<span class="help-block">
<strong>{{ $errors->first('city') }}</strong>
</span>
@endif
<label for="website">Market's website</label>
<input type="text" name="website" id="website">
@if ($errors->has('website'))
<span class="help-block">
<strong>{{ $errors->first('website') }}</strong>
</span>
@endif
<input type="submit" value="Submit">
</form>
因此,现在,如果尚未填写必填字段,它将返回在表单上指出该未填写哪个输入字段的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.