লারাভেল পুনঃনির্দেশ ফিরে () বার্তা সহ


158

মারাত্মক ত্রুটি হলে আমি একটি বার্তা নিয়ে পূর্ববর্তী পৃষ্ঠায় পুনঃনির্দেশের চেষ্টা করছি।

App::fatal(function($exception)
{
    return Redirect::back()->with('msg', 'The Message');
}

ভিউতে এই চিত্রটি দিয়ে অ্যাক্সেস করার চেষ্টা করছে

Sessions::get('msg')

কিন্তু কিছুই রেন্ডার হচ্ছে না, আমি কি এখানে কিছু ভুল করছি?


1
টাইপো সেশনটি ঠিক sকরুন, এবং useযেখানে প্রয়োজন সেখানে যুক্ত করুন । এটি ছাড়াও - কাজ করা উচিত।
ইয়াভেগেনি আফানসিয়েভ

উত্তর:


234

চেষ্টা

return Redirect::back()->withErrors(['msg', 'The Message']);

এবং আপনার দর্শন ভিতরে কল

@if($errors->any())
<h4>{{$errors->first()}}</h4>
@endif

8
এটি কাজ করে, কত দুর্দান্ত। তবে কেন এই কাজটি return Redirect::back()->with('msg', 'The Message'); এখানে "#" পাবেন?
মুদিত তুলি

আপনি কি বার্তাটি আছে কিনা তা দেখার চেষ্টা করেছেন? Session::has('msg')
জিয়ানিস ক্রিসটোফাকিস

হ্যাঁ চেক করা হয়েছে Session::has('msg')এবং 'msg' নেই।
মুদিত তুলি

2
পছন্দ করেছেন সেপ্টেম্বরের সেই শীতল কুয়াশাচ্ছন্ন সকালে আমি কী ধুমপান করছিলাম তা আমার কোনও ধারণা নেই।
স্ট্যাক ওভারফ্লো 14

7
5.4 জন্য , withErrors('some error')- তাই অ্যারের পরিবর্তে একটি স্ট্রিং হতে হবে।
17:18

127

লারাভেল 5 এবং তারপরে

নিয়ামক

 return redirect()->back()->with('success', 'your message,here');   

ব্লেড:

@if (\Session::has('success'))
    <div class="alert alert-success">
        <ul>
            <li>{!! \Session::get('success') !!}</li>
        </ul>
    </div>
@endif

7
অ্যারে স্ট্রিং রূপান্তর :(
ইয়েভেগেনি আফানসিয়েভ

মন্তব্য হিসাবে সম্পাদনা হিসাবে বাম: যদি এটি ত্রুটি দেয়: স্ট্রিং রূপান্তরটিতে অ্যারে, তবে নিয়ামকটিতে কেবল ছোট ফিক্সreturn redirect()->back()->with('success', 'your message here');
মাইকেল

@ মিশেল আপনার অর্থ কি? এটি অবশ্যই একটি অ্যারের ফিরিয়ে দেয়!
অ্যান্ড্রু সেভচুক

@ অ্যান্ড্রুস্যাভটুকুক - এটি আমার মন্তব্য নয়। অন্য এসও ব্যবহারকারী উত্তরটি সম্পাদনা করেছিলেন যখন তার সবেমাত্র এখানে একটি মন্তব্য করা বা নিজের উত্তর তৈরি করা উচিত ছিল।
মাইকেল

@ মিশেল আমাদের উত্তরটি সঠিক উপায়ে সম্পাদনা করা উচিত কারণ আপনি যদি এই কোডটি চালান তবে এটি কাজ করবে না।
অ্যান্ড্রু সেভচুক

62

বিকল্প পদ্ধতি হবে

নিয়ামক

use Session;
       
Session::flash('message', "Special message goes here");
return Redirect::back();

দৃশ্য

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

22

লারাভেল 5.4-এ নিম্নলিখিতগুলি আমার জন্য কাজ করেছে:

return back()->withErrors(['field_name' => ['Your custom message here.']]);

ওহে. গৃহীত উত্তর (প্রশ্ন ট্যাগ দেখুন), এর প্যারামিটারগুলি Laravel 4 ব্যবহারের জন্য withErrors()উত্তর পদ্ধতি দুই উপাদানের সঙ্গে একটি অ্যারের হল: ['msg', 'The Message']। গ্রহণযোগ্য প্যারামিটারগুলির জন্য এপিআই দেখুন: লারাভেল.com
Illuminate

আমার উত্তরে লারাভেল ৫.৪ ব্যবহারের জন্য, withErrors()পদ্ধতির পরামিতিগুলি এমন একটি উপাদান যা একটি key => valueজোড় যুক্ত অ্যারে, যেখানে মানটি একটি অ্যারে। 5.4 এপিআই: লারাভেল.com
api/

13

আপনার একটি ত্রুটি রয়েছে (ভুল বানান):

Sessions::get('msg')// an extra 's' on end

হতে হবে:

Session::get('msg')

আমি মনে করি, এখন এটি কাজ করা উচিত, এটি আমার জন্য কাজ করে।


8

কেবল ফ্ল্যাশ বার্তা সেট করুন এবং আপনার নিয়ামক ফানসিটিওন থেকে ফিরে যেতে।

    session()->flash('msg', 'Successfully done the operation.');
    return redirect()->back();

এবং তারপরে আপনি বার্তাটি ভিউ ব্লেড ফাইলটিতে পেতে পারেন।

   {!! Session::has('msg') ? Session::get("msg") : '' !!}

আমার মনে হয় {!! Session::get("msg", '') !!}যথেষ্ট হওয়া উচিত। কী উপস্থিত রয়েছে get()কিনা তা ইতিমধ্যে যাচাই করে এবং অন্যথায় ডিফল্ট মান প্রদান করে returns
এমিল বার্গারন

8

লারাভেল 5.5 এ :

return back()->withErrors($arrayWithErrors);

ফলক ব্যবহার করে দেখুন:

@if($errors->has())
    <ul>
    @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
    @endforeach
    </ul>
@endif

2
$ ত্রুটি-> হয়েছে () ব্যর্থ হয়েছে তবে $ ত্রুটি-> কোনও () ভাল কাজ করেছে
রোপসিন

6

লারাভেল 5.8 এ আপনি নিম্নলিখিতগুলি করতে পারেন:

return redirect()->back()->withErrors(['name' => 'The name is required']);

এবং ফলক মধ্যে:

@error('name')
<p>{{ $message }}</p>
@enderror

4

আমি লারাভ্যাস প্যাকেজের পক্ষে এটি নিজের পক্ষে লিখতে পেরেছি যা আপনার পক্ষে এটি সমস্ত পরিচালনা করে। এটি ব্যবহার করা সত্যই সহজ এবং আপনার কোডটি পরিষ্কার রাখে। এমন একটি ল্যারেস্ট রয়েছে যা এটি কীভাবে ব্যবহার করতে পারে তা covers েকে দেয়। আপনাকে যা করতে হবে তা:

সুরকারের মাধ্যমে প্যাকেজে টানুন।

"require": {
  "laracasts/flash": "~1.0"
}

অ্যাপ্লিকেশন / কনফিগারেশন / app.php এর মধ্যে পরিষেবা সরবরাহকারীর অন্তর্ভুক্ত করুন।

'providers' => [
  'Laracasts\Flash\FlashServiceProvider'
];

নীচে এই একই ফাইলে একটি ফ্যাকাসের উপনাম যুক্ত করুন:

'aliases' => [
  'Flash' => 'Laracasts\Flash\Flash'
];

এইচটিএমএলটিকে ভিউতে টানুন:

@include('flash::message') 

বার্তার ডানদিকে একটি ঘনিষ্ঠ বোতাম রয়েছে। এটি jQuery এর উপর নির্ভর করে তাই এটি আপনার বুটস্ট্র্যাপের আগে যুক্ত করা হয়েছে তা নিশ্চিত করুন।

changesচ্ছিক পরিবর্তন:

আপনি যদি বুটস্ট্র্যাপ ব্যবহার না করে থাকেন বা ফ্ল্যাশ বার্তার অন্তর্ভুক্তিটি এড়িয়ে যেতে চান এবং কোডটি নিজে লিখতে চান:

@if (Session::has('flash_notification.message'))
  <div class="{{ Session::get('flash_notification.level') }}">
    {{ Session::get('flash_notification.message') }}
  </div>
@endif

আপনি যদি টানা এইচটিএমএলটি দেখতে চান তবে @include('flash::message')এটি এটি খুঁজে পেতে পারেন vendor/laracasts/flash/src/views/message.blade.php

আপনার যদি পার্টিয়ালগুলি পরিবর্তন করতে হয় তবে তা করুন:

php artisan view:publish laracasts/flash

দুটি প্যাকেজ দর্শন এখন `অ্যাপ / ভিউ / প্যাকেজ / ল্যাক্রেস্ট / ফ্ল্যাশ / 'ডিরেক্টরিতে অবস্থিত।


4

নিয়ামক মধ্যে

উদাহরণ স্বরূপ

return redirect('login')->with('message',$message);

ফলক ফাইলটিতে বার্তাটি ভেরিয়েবলের মধ্যে না হয়ে সেশনে সংরক্ষণ করা হবে।

উদাহরণ স্বরূপ

@if(session('message'))
{{ session('message') }}
@endif

3

লারাভেল 5.5+ এর জন্য

নিয়ন্ত্রক:

return redirect()->back()->with('success', 'your message here');

ব্লেড:

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

2

আমি একই সমস্যার মুখোমুখি হয়েছি এবং এটি কাজ করেছে।

নিয়ামক

return Redirect::back()->withInput()->withErrors(array('user_name' => $message));

দৃশ্য

<div>{{{ $errors->first('user_name') }}}</div>

2

লারাভেল 5.6 এর জন্য *

লারাভেল ৫..6-তে প্রদত্ত কয়েকটি জবাবের চেষ্টা করার সময়, এটি স্পষ্ট যে এখানে কিছু উন্নতি হয়েছে যা আমি এখানে পোস্ট করতে চলেছি তাদের উত্তরগুলির বাকী উত্তরগুলির সাথে সমাধান খুঁজে পেতে পারে না এমন জিনিসগুলির জন্য সহজ করে তুলতে।

ধাপ 1:

আপনার নিয়ন্ত্রক ফাইলে যান এবং শ্রেণীর আগে এটি যুক্ত করুন:

use Illuminate\Support\Facades\Redirect;

পদক্ষেপ 2: আপনি যেখানে পুনর্নির্দেশ ফিরিয়ে দিতে চান সেখানে এটি যুক্ত করুন।

 return Redirect()->back()->with(['message' => 'The Message']);

পদক্ষেপ 3: আপনার ফলক ফাইলে যান এবং নীচে সম্পাদনা করুন

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

তারপরে পরীক্ষা করুন এবং পরে আমাকে ধন্যবাদ দিন।

এটি লারাভেল 5.6 দিয়ে কাজ করা উচিত * * এবং সম্ভবত 5.7 7


1

লারাভেল 3 এর জন্য

@ গিনিস ক্রিসোফাকিস উত্তরটি সবেমাত্র শীর্ষে রয়েছে; Laravel 3 ব্যবহার করে যে কেউ প্রতিস্থাপন

return Redirect::back()->withErrors(['msg', 'The Message']);

সঙ্গে:

return Redirect::back()->with_errors(['msg', 'The Message']);

1

লারাভেল 5.6। *

নিয়ামক

if(true) {
   $msg = [
        'message' => 'Some Message!',
       ];

   return redirect()->route('home')->with($msg);
} else {
  $msg = [
       'error' => 'Some error!',
  ];
  return redirect()->route('welcome')->with($msg);
}

ফলক টেম্পলেট

  @if (Session::has('message'))
       <div class="alert alert-success" role="alert">
           {{Session::get('message')}}
       </div>
  @elseif (Session::has('error'))
       <div class="alert alert-warning" role="alert">
           {{Session::get('error')}}
       </div>
  @endif

Enyoj


0

আমি এই বার্তাটি পেয়েছি যখন আমি পুনঃনির্দেশ করার চেষ্টা করেছি:

public function validateLogin(LoginRequest $request){
    //

    return redirect()->route('sesion.iniciar')
            ->withErrors($request)
            ->withInput();

যখন সঠিক উপায়:

public function validateLogin(LoginRequest $request){
    //

    return redirect()->route('sesion.iniciar')
            ->withErrors($request->messages())
            ->withInput();

0

লারাভেল 5.8

নিয়ামক

return back()->with('error', 'Incorrect username or password.');

ব্লেড

  @if (Session::has('error'))
       <div class="alert alert-warning" role="alert">
           {{Session::get('error')}}
       </div>
  @endif
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.