Laravel在完成存储功能后注销



Laravel注销,在执行存储功能后不将数据存储到数据库中,该功能应该重定向到后端页面以下是表单:

div class="content-wrapper">
<div class="row">
<div class="col-md-12 grid-margin">
<div class="row">
<div class="col-12 grid-margin stretch-card">
<h3 class="font-weight-bold" style="margin-left: 510px;">Tambah Post Art Movement</h3>
</div>
<div class="col-12 grid-margin stretch-card">
<div class="card">
<div class="card-body">
<form action="{{route('blogstore')}}" method="POST" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="exampleInputName1">Nama Art Movement</label>
<input type="text" value="{{ old('nama_art') }}" class="form-control @error('nama_art') is-invalid @enderror" name="nama_art" id="nama" placeholder="Nama Art Movement">
@error('nama_art')
<div class="alert alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label>Foto Art Movement</label>
<input type="file" class="form-control @error('foto_art') is-invalid @enderror" name="foto_art">
<div class="input-group col-xs-12">
</div>
@error('foto_art')
<div class="alert alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="example1">Tahun awal dikenal</label>
<input type="text" name="tahun_awal" value="{{ old('tahun_awal') }}" class="form-control @error('tahun_awal') is-invalid @enderror" id="example1" placeholder="Tahun awal dikenal">
@error('tahun_awal')
<div class="alert alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="example2">Tahun akhir dikenal</label>
<input type="text" name="tahun_akhir" value="{{ old('tahun_akhir') }}" class="form-control @error('tahun_akhir') is-invalid @enderror" id="example2" placeholder="Tahun akhir dikenal">
@error('tahun_akhir')
<div class="alert alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="exampleTextarea">Deskripsi</label>
<textarea  name="deskripsi_art" class="form-control @error('deskripsi_art') is-invalid @enderror" name="content" rows="5" id="deskripsi" placeholder="Masukkan Deskripsi Postingan">{{ old('content') }}</textarea>
@error('deskripsi_art')
<div class="alert alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="tautan">Tautan</label>
<input type="text" name="tautan_art" value="{{ old('tautan_art') }}" class="form-control @error('tautan_art') is-invalid @enderror" id="tautan" placeholder="Tautan">
@error('tautan_art')
<div class="alert alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="nama_tautan">Nama Tautan</label>
<select class="form-control @error('nama_tautan_art') is-invalid @enderror" id="nama_tautan_art" name="nama_tautan_art">
<option>Wikipedia</option>
<option>© Grove Art / OUP</option>
</select>
@error('nama_tautan_art')
<div class="alert alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<button type="submit" class="btn btn-primary mr-2">Simpan</button>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script src="https://cdn.ckeditor.com/4.13.1/standard/ckeditor.js"></script>
<script>
CKEDITOR.replace( 'deskripsi_art' );
</script>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

这是控制器,应该从表单中获取一个值,并将其存储到数据库中,然后重定向到后端页面,但它会注销:

public function store(Request $request)
{
$this->validate($request, [
'nama_art'     => 'required',
'foto_art'     => 'required|image|mimes:png,jpg,jpeg',
'tahun_awal'   => 'required',
'deskripsi_art'   => 'required',
'tautan_art'   => 'required',
'nama_tautan_art'   => 'required'
]);
//upload image
$foto_art = $request->file('foto_art');
$foto_art->storeAs('public/web-template/img/gallery', $foto_art->hashName());
$artMovement = ArtMovement::create([
'nama_art'     => $request->nama_art,
'foto_art'     => $foto_art->hashName(),
'tahun_awal'   => $request->tahun_awal,
'deskripsi_art'   => $request->deskripsi_art,
'tautan_art'   => $request->tautan_art,
'nama_tautan_art'   => $request->nama_tautan_art
]);
if($artMovement){
//redirect with success message
return redirect()->route('/backend/blog')->with(['message' => 'Data Berhasil Disimpan!']);
}else{
//redirect with error message
return redirect()->route('/backend/blog')->with(['message' => 'Data Gagal Disimpan!']);
}
}

路线如下:

Route::resource('/', BeritaController::class);
Route::get('tampil', [BeritaController::class, 'artMovement']);
Route::get('asset', [BeritaController::class, 'asset']);
Route::get('partner', [BeritaController::class, 'partner']);
Route::get('event', [BeritaController::class, 'event']);
Route::get('/login', function () {
return view('auth.login');
});
Route::get('/register', function () {
return view('auth.register');
});
Route::get('/logout', function()
{
auth()->logout();
session()->flush();
return Redirect::to('/');
});
Route::post('/register', [RegisterController::class, 'store']);
Auth::routes();
Route::group(['middleware' => ['auth', 'level:admin']], function(){
Route::get('/backend/blog', [AppHttpControllersBackendBlogController::class, 'index'])->name('blogindex');
Route::get('/backend/create', [AppHttpControllersBackendBlogController::class, 'create'])->name('blogcreate');
Route::get('/backend/edit/{id}', [AppHttpControllersBackendBlogController::class, 'edit'])->name('blogedit');
Route::get('/backend/delete/{id}', [AppHttpControllersBackendBlogController::class, 'destroy'])->name('blogdelete');
Route::post('/backend/store', [AppHttpControllersBackendBlogController::class, 'store'])->name('blogstore');
Route::put('/backend/update/{id}', [AppHttpControllersBackendBlogController::class, 'update'])->name('blogupdate');
Route::get('/search', [AppHttpControllersBackendBlogController::class, 'search']);

Route::get('/home', [AppHttpControllersBackendHomeController::class, 'backend'])->name('home');
});
  1. 第一个可能的解决方案:

    检查您是否因为使用auth-middlware而正确登录,此如果您没有登录,middlware会将您重定向到登录页面。

  2. 第二种可能的解决方案

    检查config/session.php中的会话生存期

  3. 第三种可能的解决方案

    检查您的csrf令牌是否正常工作,尝试在'/backend/store'路由中禁用它

我希望这能为你工作!

最新更新