视图laravel中的未定义变量

时间:2016-12-01 13:21:37

标签: laravel laravel-5

我这里有这个代码,列出了一个用户的所有项目,用户和项目是两个不同的模型,它们与主键有关系。

@foreach($user->items as $item)
    <p class="heading">
         <a href="">{{ $item->item_id }}</a>
     </p>
@endforeach

我的问题是如何将带有post请求的item_id发送给控制器,因为当我这样编写例如<form class="form-horizontal" method="post" action="{{ route('preview', $item->item_id) }}" role="form" enctype="multipart/form-data">时,它会告诉我$ item变量未定义。

我的控制器:

public function preview($item_id){

        return view('itempreview')->with('item_id', $item_id);
    }

任何想法如何发送item_id

2 个答案:

答案 0 :(得分:0)

您需要发送$item_id作为POST的一部分:

@foreach($items as $item) 
    <form method="post" action="{{ route('preview') }}">
        <input type="hidden" name="item_id" value="{{ $item->item_id }}">
    </form>
@endforeach

然后在接收POST的方法中:

public function index() {

     $item_id = request()->input('item_id');

     return view('preview');
}

答案 1 :(得分:0)

你应该使用数组作为route()方法的第二个参数!

你做错了,你应该这样发送:

route('preview', ['item_id' => $item->item_id]);

确保您的路线应定义为:

Route::post('preview/{item_id}', 'ControllerName@preview')->name('preview');

希望这有帮助!