【问题标题】:Redirect page but still bring data on Laravel重定向页面但仍然在 Laravel 上带来数据
【发布时间】:2019-04-22 04:07:23
【问题描述】:

我想从控制器重定向页面,但仍然带来数据/数据(数据名称是“valueOne”)

我用这个代码试过

return redirect()->back()->with('alert','test');

return view('login');

这是我在刀片中的表单:

//this data i get from other page, and keep this on this blade
<input id="valueOne" name="valueOne" type="hidden" value="{{ $result->valueOne }}">


    <form action="{{URL::to('/getHalaman')}}" method="post" id="form1">
    <div class="numberOne">Number One : 
      <select id="numberOne" name="numberOne">
        <option value="null" id="numberOne">-- choose --</option>
        <option value="a">a</option>
        <option value="b">b</option>
        <option value="c">c</option>
      </select>
      </div>

      <br>

      <div class="numberTwo" style="text-align: center;">Number Two : 
      <select id="numberTwo" name="numberTwo" style="width: 200px;">
        <option value="null">-- choose --</option>
        <option value="aa">aa</option>
        <option value="bb">bb</option>
      </select>
      </div>

      <br>
      <div class="button" style="text-align: center;">
      <input id="id" name="id" type="hidden" value="{{ $result->id }}">
      <script src="js/testButton.js" type="text/javascript"></script>
      <button id="buttonSubmit" type="submit" value="Submit"> Konfirmasi </button>
    </div>
      {{ csrf_field() }}
     </div>
     </form>

这是我的控制器:

function getHalaman(Request $req){
    $req->numberTwo == 'null';

        return redirect()->back()->with('alert','error');
    try {
         if($req->numberTwo == 'aa'){
            return view('numberOne')->with('a',$req->numberOne)->with('jaminan',$req->numberTwo)->with('id',$req->id);  
        } else {
            return view('numberTwo')->with('a',$req->numberOne)->with('jaminan',$req->numberTwo)->with('id',$req->id);
        }

    } catch (\Throwable $th) {
        return view('login');
    }
}

这是我的路线:

Route::post('/getHalaman', 'userController@getHalaman');

我尝试并得到类似 valueOne not found 的错误

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

我的预期是,如果用户不选择该选项 numberTwo,将在该页面上重定向但仍会带来 valueOne

任何人都可以帮助我吗?非常感谢是想帮助我..

【问题讨论】:

  • return redirect()-&gt;back()-&gt;with('alert','test'); 它在 flash Session 中的存储,为了得到这个你需要像Session::get('alert');一样做
  • @KaranSadana 我必须把它放在哪里?对不起,我是 laravel 的新手
  • @KaranSadana 先生,你能给我举个例子吗?
  • 见我的回答
  • $result 来自哪里?它存储在会话中吗? @YeruAdi

标签: javascript php laravel


【解决方案1】:

当您使用with 发送数据时,它会存储在闪存中的会话数据,这意味着您需要从会话中获取这些数据。请参阅有关此的 laravel 文档。 Flash Data to view

所以从视图中获取数据的方法如下所示

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

首先,我们检查会话是否有警报,以防你不发送

【讨论】:

  • 检查您通过 name 传递的名称,因此我使用 alertreturn redirect()-&gt;back()-&gt;with('alert','test'); 所以 m 使用 alert 来获取
【解决方案2】:
  <div class="numberTwo" style="text-align: center;">Number Two : 
  <select id="numberTwo" name="numberTwo" style="width: 200px;">
    <option value="null">-- choose --</option>
    @foreach ($titles as $key => $val)
    @if(Session::has('alert'))
          <option value="{{ Session::get('alert')}}" selected>{{ Session::get('alert')}}</option>
    @else
          <option value="{{ $key }}">{{ $val }}</option>
    @endif      
    @endforeach
  </select>
  </div>

【讨论】:

  • 你有另一个选项来返回输入 return redirect()->back()->withInput()->with('alert','test');
【解决方案3】:

试试这个,

第一个 comopser 转储自动加载

composer dump-autoload

在你看来,

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

希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 2018-11-06
    • 2016-01-09
    • 2018-07-20
    • 1970-01-01
    相关资源
    最近更新 更多