programing

Laravel 5.2 성공 메시지와 함께 다시 연결

testmans 2023. 11. 1. 22:12
반응형

Laravel 5.2 성공 메시지와 함께 다시 연결

라라벨 홈페이지에 성공 메시지를 다시 보내려고 합니다.

return redirect()->back()->withSuccess('IT WORKS!');

어떤 이유에서인지 $success 변수는 이 코드를 실행한 후 값을 얻지 못합니다.

성공 메시지를 표시하기 위해 사용하는 코드:

@if (!empty($success))
    <h1>{{$success}}</h1>
@endif

홈과 뉴스레터 페이지를 웹 미들웨어 그룹에 루트 추가하였습니다.다음과 같은 php:

Route::group(['middleware' => 'web'], function () {
    Route::auth();

    Route::get('/', function () {
        return view('home');
    });

    Route::post('/newsletter/subscribe','NewsletterController@subscribe');
});

이게 왜 안 되는 건지 아는 사람?

제거해야 합니다.web에서의 미들웨어.routes.php. 추가하기web미들웨어는 Laravel 5.2.27 이상에서 세션요청 관련 문제를 수동으로 발생시킵니다.

도움이 되지 않았다면 (그래도, 계속)routes.php웹 미들웨어 없이), 약간 다른 접근 방식을 시도할 수 있습니다.

return redirect()->back()->with('message', 'IT WORKS!');

메시지가 있는 경우 표시:

@if(session()->has('message'))
    <div class="alert alert-success">
        {{ session()->get('message') }}
    </div>
@endif

다음을 사용할 수 있습니다.

return redirect()->back()->withSuccess('IT WORKS!');

보기에 사용할 수 있습니다.

@if(session('success'))
    <h1>{{session('success')}}</h1>
@endif

컨트롤러:

return redirect()->route('subscriptions.index')->withSuccess(['Success Message here!']);

칼날

@if (session()->has('success'))
<div class="alert alert-success">
    @if(is_array(session('success')))
        <ul>
            @foreach (session('success') as $message)
                <li>{{ $message }}</li>
            @endforeach
        </ul>
    @else
        {{ session('success') }}
    @endif
</div>
@endif

이 부분을 항상 별도의 블레이드 파일로 저장하고 쉽게 포함할 수 있습니다.예:

<div class="row">
        <div class="col-md-6">
            @include('admin.system.success')
            <div class="box box-widget">

간단히 사용할 수 있습니다.back()사용할 필요가 없도록 리디렉션 기능redirect()->back()5.2 이상 버전을 사용하고 있는지 확인합니다.

코드를 아래 코드로 교체할 수 있습니다.

return back()->with('message', 'WORKS!');

보기 파일에서 아래 코드를 바꿉니다.

@if(session()->has('message'))
    <div class="alert alert-success">
        {{ session()->get('message') }}
    </div>
@endif

자세한 내용은 여기에서 확인할 수 있습니다.

back()그저 도우미 기능일 뿐입니다.그것은 다음과 같은 일을 하고 있습니다.redirect()->back()

이를 위한 한 가지 방법은 다음과 같이 세션에서 메시지를 보내는 것입니다.

컨트롤러:

return redirect()->back()->with('success', 'IT WORKS!');

보기:

@if (session()->has('success'))
    <h1>{{ session('success') }}</h1>
@endif

그리고 이를 위한 또 다른 방법은 세션을 만들고 텍스트를 직접 보기에 넣는 것입니다.

컨트롤러:

return redirect()->back()->with('success', true);

보기:

@if (session()->has('success'))
    <h1>IT WORKS!</h1>
@endif

전체 설명서는 여기에서 확인할 수 있습니다: 플래시된 세션 데이터를 사용하여 리디렉션

많은 도움이 되길 바랍니다, 안녕하세요.

위의 내용이 모두 맞지만, 이 직선형 원라이너를 사용해 보십시오.

{{session()->has('message') ? session()->get('message') : ''}}

컨트롤러에서

return redirect()->route('company')->with('update', 'Content has been updated successfully!');

보기에

@if (session('update'))
  <div class="alert alert-success alert-dismissable custom-success-box" style="margin: 15px;">
     <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
     <strong> {{ session('update') }} </strong>
  </div>
@endif

라벨 메시지백을 사용하여 기존 메시지에 우리 고유의 메시지를 추가할 수 있습니다.

MessageBag을 사용하려면 다음을 사용해야 합니다.

use Illuminate\Support\MessageBag;

컨트롤러에서:

MessageBag $message_bag

$message_bag->add('message', trans('auth.confirmation-success'));

return redirect('login')->withSuccess($message_bag);

누군가에게 도움이 되길 바랍니다.

  • 아디.

컨트롤러에서:

 `return redirect()->route('car.index')->withSuccess('Bein ajoute')`;

보기에

  @if(Session::get('success'))
           <div class="alert alert-success">
               {{session::get('success')}}
           </div>
   @endif

언급URL : https://stackoverflow.com/questions/37376168/laravel-5-2-redirect-back-with-success-message

반응형