【发布时间】:2020-12-23 13:47:15
【问题描述】:
我正在尝试修复我的表单,因此它使用 laravel 将新记录添加到数据库中。 现在,当我按下提交按钮时,它只会刷新。 验证过程也已实施。
应用程序也不会抛出任何错误。
是否有人看到可能缺少/错误的内容?
这是关于市场页面的。
我的代码:
markets.blade.php(查看)
@extends('layout')
@section('title', 'Market List')
@section('content')
<div class="row">
<div class="col-12">
<h1>Markets</h1>
</div>
</div>
<div class="row">
<div class="col-12">
<form action="markets" method='post' class="row g-3">
<div class="col-md-6">
<label for="name" class="form-label">Name</label>
<input type="text" name='name' value="{{ old('name') }}" class="form-control">
<div>{{ $errors->first('name') }}</div>
</div>
<div class="col-md-6">
<label for="adress" class="form-label">Adress</label>
<input type="text" name='adress' value="{{ old('adress') }}" class="form-control">
<div>{{ $errors->first('adress') }}</div>
</div>
<div class="col-md-6">
<label for="City" class="form-label">City</label>
<input type="text" name='City' value="{{ old('City') }}" class="form-control">
<div>{{ $errors->first('City') }}</div>
</div>
<div class="col-md-6">
<label for="province" class="form-label">Province</label>
<input type="text" name='province' value="{{ old('province') }}" class="form-control">
<div>{{ $errors->first('province') }}</div>
</div>
<div class="col-md-6">
<label for="Country" class="form-label">Country</label>
<input type="text" name='Country' value="{{ old('Country') }}" class="form-control">
<div>{{ $errors->first('Country') }}</div>
</div>
<div class="col-md-6">
<label for="photo" class="form-label">Photo</label>
<input type="file" name='photo' value="{{ old('photo') }}" class="form-control">
<div>{{ $errors->first('photo') }}</div>
</div>
<div class="col-md-6">
<label for="description" class="form-label">Description</label>
<input type="text" name='description' value="{{ old('description') }}" class="form-control">
<div>{{ $errors->first('description') }}</div>
</div>
<div class="col-md-6">
<label for="active">Status</label>
<select name="active" id="active" class="form-control" value="{{ old('active') }}">
<option value="" disabled>Select market status</option>
<option value="1" selected>Active</option>
<option value="0">Inactive</option>
</select>
<div>{{ $errors->first('active') }}</div>
</div>
{{--<div class="col-md-6">
<div class="form-check form-switch">
<label class="form-check-label" for="flexSwitchCheckChecked">Active</label>
<input class="form-check-input" type="checkbox" name="active" class="form-control" value="{{ old('active') }}" checked>
</div>
</div>--}}
{{--<div class="form-group">
<label for="user_id">Market</label>
<select name="user_id" id="user_id" class="form-control" value="{{ old('user_id') }}">
<option value="" disabled>Selecteer Market</option>
@foreach ($users as $user)
<option value="{{ $user->id }}">{{ $user->name }}</option>
@endforeach
</select>
</div> --}}
<div class="col-auto">
<button type="submit" name="submit" class="btn btn-success">Save</button>
</div>
<div class="col-6">
<button class="btn btn-danger">Cancel</button>
</div>
@csrf
</form>
</div>
</div>
<hr>
<div class="row">
<div class="col-12">
<h3>Your Markets</h3>
<ul>
@foreach ($userMarkets as $userMarket)
<li>{{ $userMarket->name }} <span class="text-muted">({{ $userMarket->adress - $userMarket->city }} - {{-- $userMarket->amountProducts --}} {{$userMarket->active}}</span></li>
@endforeach
</ul>
</div>
</div>
@endsection
MarketsController.php(控制器)
<?php
namespace App\Http\Controllers;
use Illuminate\Auth\Events\Validated;
use Illuminate\Http\Request;
class MarketsController extends Controller
{
public function list(){
$userProducts = \App\Models\Product::user()->get();
$userMarkets = \App\Models\Market::user()->get();
return view("internal.markets", compact('userProducts', 'userMarkets'));
}
public function store()
{
$data = request()->validate([
'name' => 'required',
'adress' => 'required',
'city' => 'required',
'province' => 'required',
'country' => 'required',
'photo' => '',
'description' => 'max:300',
'active' => 'boolean'
]);
$market = new \App\Models\Market();
$market->name = request('name');
$market->adress = request('adress');
$market->city = request('city');
$market->province = request('province');
$market->country = request('country');
$market->photo = request('photo');
$market->description = request('description');
$market->active = request('active');
$market->save();
return back();
}
}
Market.php(模型)
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Market extends Model
{
use HasFactory;
protected $guarded = [];
public function scopeActive($query){
return $query->where('active', '1');
}
//filters on markets of logged in user
public function scopeUser($query){
//return $query->where('active', '1');
return $query;
}
public function product()
{
return $this->hasMany(Product::class);
}
}
Web.php(路由)
<?php
use Illuminate\Support\Facades\Route;
//Products
Route::get('products', 'App\Http\Controllers\ProductsController@list');
Route::post('products', 'App\Http\Controllers\ProductsController@store');
//Markets
Route::get('markets', 'App\Http\Controllers\MarketsController@list');
Route::post('markets', 'App\Http\Controllers\MarketsController@store');
如果有人看到问题,为什么它不起作用。我很高兴听到它。
问候
戴夫
【问题讨论】:
-
请试试这个。
$this->validate($request, [//validation rule ]);