繁体   English   中英

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

[英]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中更改authorizereturn 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM