【问题标题】:Laravel logout after do a store function执行存储功能后 Laravel 注销
【发布时间】:2021-11-07 03:14:06
【问题描述】:

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', [App\Http\Controllers\Backend\BlogController::class, 'index'])->name('blogindex');
    Route::get('/backend/create', [App\Http\Controllers\Backend\BlogController::class, 'create'])->name('blogcreate');
    Route::get('/backend/edit/{id}', [App\Http\Controllers\Backend\BlogController::class, 'edit'])->name('blogedit');
    Route::get('/backend/delete/{id}', [App\Http\Controllers\Backend\BlogController::class, 'destroy'])->name('blogdelete');
    Route::post('/backend/store', [App\Http\Controllers\Backend\BlogController::class, 'store'])->name('blogstore');
    Route::put('/backend/update/{id}', [App\Http\Controllers\Backend\BlogController::class, 'update'])->name('blogupdate');
    Route::get('/search', [App\Http\Controllers\Backend\BlogController::class, 'search']);
    
    Route::get('/home', [App\Http\Controllers\Backend\HomeController::class, 'backend'])->name('home');
});

【问题讨论】:

  • 实际上是让您退出,还是您一开始就没有正确登录?
  • 它让我退出
  • 你试过什么调试?在浏览器的 devtools 中检查请求 - 它真的 POST 到它应该的 URI 吗?表单中的数据是否正确发送?服务器响应是什么?您确定在发布表单时已登录吗?

标签: php laravel


【解决方案1】:
  1. 第一个可能的解决方案:

    检查您是否正确登录,因为您使用了身份验证中间件,这 如果您未登录,中间件会将您重定向到登录页面。

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

    config/session.php

    中检查会话生命周期
  3. 第三种可能的解决方案

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

我希望这对你有用!

【讨论】:

    猜你喜欢
    • 2021-06-24
    • 2021-06-24
    • 2021-12-09
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2012-05-03
    • 1970-01-01
    相关资源
    最近更新 更多