php - Laravel flash 消息在特定重定向路由的特定方法中不起作用
问题描述
我有一个很奇怪的问题。创建帖子时我的 Flash 消息不起作用,但在我删除或更新它时起作用,当我更改重定向方向时它也起作用。
因此,在store()
方法中,当我将创建的帖子保存到 DB 时,我会重定向到/posts
,如果我将其更改为/posts
有效,则会发生重定向但没有闪烁消息/anyotherroute
。
Myupdate()
与 相同store()
,它也重定向到,/posts
但在更新的情况下会出现闪烁消息,与destroy()
.
任何人都知道这是为什么?
所以我只是注意到在 localhost flash 上出现了消息,但在共享主机上却没有。
店铺()
public function store(Request $request){
$this->validate($request, [
'title' => 'required',
'body' => 'required',
'cover_image' => 'image|nullable|max:1999'
]);
// Handle file upload
if($request->hasFile('cover_image')){
// Get filename with the extension
$fileNameWithExt = $request->file('cover_image')->getClientOriginalName();
// Get just filename
$fileName = pathinfo($fileNameWithExt, PATHINFO_FILENAME);
// Get just ext
$extension = $request->file('cover_image')->getClientOriginalExtension();
// Filename to store
$fileNameToStore = $fileName . '_' . time() . '.' . $extension;
// Upload Image
// $path = $request->file('cover_image')->storeAs('public/cover_images', $fileNameToStore);
$file = $request->file('cover_image');
Storage::disk('uploads')->put('posts_images/' . $fileNameToStore, File::get($file));
}else{
$fileNameToStore = 'noimage.jpg';
}
// create post
$post = new Post;
$post->title = $request->input('title');
$post->body = $request->input('body');
$post->user_id = auth()->user()->id;
$post->cover_image = $fileNameToStore;
$post->save();
return redirect('/posts')->with('success', 'Post Created');
更新()
public function update(Request $request, $id){
$this->validate($request, [
'title' => 'required',
'body' => 'required',
'cover_image' => 'image|nullable|max:1999'
]);
// Handle file upload
if($request->hasFile('cover_image')){
// Get filename with the extension
$fileNameWithExt = $request->file('cover_image')->getClientOriginalName();
// Get just filename
$fileName = pathinfo($fileNameWithExt, PATHINFO_FILENAME);
// Get just ext
$extension = $request->file('cover_image')->getClientOriginalExtension();
// Filename to store
$fileNameToStore = $fileName . '_' . time() . '.' . $extension;
// Upload Image
// $path = $request->file('cover_image')->storeAs('public/cover_images', $fileNameToStore);
$file = $request->file('cover_image');
Storage::disk('uploads')->put('posts_images/' . $fileNameToStore, File::get($file));
}
// create post
$post = Post::find($id);
$post->title = $request->input('title');
$post->body = $request->input('body');
if($request->hasFile('cover_image')){
$post->cover_image = $fileNameToStore;
}
$post->save();
return redirect('/posts')->with('success', 'Post Updated');
消息()
@if(count($errors) > 0)
@foreach($errors->all() as $error)
<div class="alert alert-danger">
{{$error}}
</div>
@endforeach
@endif
@if(session('success'))
<div class="alert alert-success">
{{session('success')}}
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
{{session('error')}}
</div>
@endif`
帖子/索引()
@extends('layouts/app')
@section('content')
<h1>Posts</h1>
@if(count($posts) > 0)
@foreach($posts as $post)
<div class="well">
<div class="row">
<div class="col-md-4 col-sm-4">
{{-- <img src="/storage/cover_images/{{$post->cover_image}}" alt="error" style="width: 100%;"> --}}
<img src="{{url('/uploads')}}/posts_images/{{$post->cover_image}}" style="width: 100%; max-height: 200px;">
</div>
<div class="col-md-8 col-sm-8">
<h3><a href="{{url('/posts')}}/{{$post->id}}">{{$post->title}}</a></h3>
<small>Written on {{$post->created_at}} by {{@$post->user->name}}</small>
</div>
</div>
</div>
@endforeach
<div id="pagination">
{{$posts->links()}}
</div>
@else
<p>No posts found.</p>
@endif
@endsection()
app_layout()
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
@include('inc/navbar')
<div class="container">
@include('inc/messages')
@yield('content')
</div>
</div>
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}"></script>
<script type="text/javascript" src="{{URL::asset('js/custom.js') }}"></script>
<script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
<script>
CKEDITOR.replace('article-ckeditor');
</script>
</body>
</html>
解决方案
所以由于某种原因,当我登录我的谷歌帐户时,它没有出现在 Chrome 中。我去了我的笔记本电脑,在那里也使用了 Chrome,在笔记本电脑上它可以工作,然后我在我的电脑上更改了谷歌帐户,它也可以正常工作。它只是在我使用我的谷歌帐户时不起作用,即使我清除了历史记录、缓存和 cookie,但我想我不介意它是否适用于其他人。无论如何,这是一个非常愚蠢的问题,很抱歉打扰你:(
推荐阅读
- elasticsearch - Elasticsearch 无痛脚本更新并进行一次 POST 调用
- javascript - [call] 方法如何与 Vue JS 中的类组件一起使用?
- salesforce - 如何将值从 Lightning Web 组件传递到流变量?
- jquery - Datatable 的界面无法正常工作
- javascript - 有没有办法使用 h.264 编解码器恢复实时 h264 播放(客户端重新加入)?
- excel - 如何在 MS Excel 中将特定数据从一个 Excel 工作表传输到另一个工作表?
- c++ - 单个父类中有多个相同的类实例
- sikuli - Sikuli 如何使用“而不是”和“而不”
- linux - 如何忽略以 | 分隔的文件中的列 在使用导入命令替换 db2 表中的数据时
- flutter - 一旦视图更改,颤动数字时钟小部件就会导致错误