gpt4 book ai didi

php - 数据未存储在数据库中 [Laravel 5.5]

转载 作者:行者123 更新时间:2023-11-29 18:15:47 25 4
gpt4 key购买 nike

我使用的是 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 中将 authorizereturn false; 更改为 return true;,然后添加规则:

return [
'name' => 'required|max:255',
'website' => 'required',
'city' => 'required'
]

然后你的 Controller 就可以被简化:

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>

现在,如果必填字段尚未填写,它将返回并在表单上抛出错误,说明哪个输入字段尚未填写。

关于php - 数据未存储在数据库中 [Laravel 5.5],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47036966/

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