2017-08-12 111 views
-1

我试图将我的post方法数据放入会话并将其重定向到非身份验证用户的登录页面。但是,如果用户认证,我可以DD()$产品,但对于非认证用户,我无法检索$名称,所以不能把名称放入会话..为什么?Laravel:POST方法数据无法检索非身份验证用户

{!! Form::open(['method' => 'POST', 'route' => 'downloadFree','enctype'=>'multipart/form-data']) !!} 
      {!! Form::token(); !!} 
      {!! Form::hidden('name',$product->name) !!} 
        <button type="submit" id="buyNow" name="buyNow" class="btn " style="width: 100%; height: 45px;" title="Download Now"><i class="icon icon-action-redo"></i> 
        Free Download 
        </button> 
      {!!Form::close()!!} 

路线::

Route::post('downloadFree','[email protected]')->name('downloadFree'); 

控制器代码:

if(Auth::user()) 
    { 
     $name = $request->name; 
     $product = Product::where('name', '=', $name)->first(); 
     dd($product); 
    } 
    else 
    { $name = $request->name; 
     $product = Product::where('name', '=', $name)->first(); 
     dd($name);  // nothing came & redirect to ('/') page 
     \Session::put('name',$request->name); 
    return redirect('/login')->with('warning',"Login first to Download"); 
    } 
+0

并请显示代码您设置会话$ product-> name –

+0

跳过会话part.first它应该来到其他条件吧? 如果我dd()输出,我应该看到$ product? – User57

+0

是的,请在dd($ request-> name)条件为 –

回答

1

你应该试试这个:

请更改

{!! Form::hidden('name',$product->name) !!} 

TO

{!! Form::text('name',$product->name,['style'=>'display:none;']) !!} 

UPDATE
当你能够得到的dd($request->all())结果为downloadFree方法仅适用于用户的loggedIn但不wothout它。意味着您的路线受中间件限制,不允许您在未登录的情况下发布数据。

希望为您工作!!!

+0

不会发生同样的事情。当我dd($ request-> name)它将我重定向到索引意味着主页。但是当它登录时,我可以看到名字的意思是dd()的作品! – User57

+0

@ User57请在显示屏上显示控制器代码 –

+0

控制器代码与我发布的代码相同问题 – User57

相关问题