我有一个带有文本输入字段和提交按钮的简单输入表单。我试图从单击提交按钮后在同一页面上再次显示输入字段的值。到目前为止,laravel总是会抛出一个错误,即变量未定义。
路线:
Route::get('/find/names', "FindController@get_name")->name('names');
控制器
public function get_name(){
$name = Input::get('name_by_user');
return $name;
}
查看
<form role="form" method="GET">
<div class="row">
<div class="form-group">
<div class="input-group">
<input type="text" name="name_by_user"/>
<span class="input-group-btn">
<button class="btn search-button" type="submit">
<span aria-hidden="true">
<span>Search</span>
</button>
</span>
</span>
</div>
</div>
</div>
</form>
display name after submitting: {{$name}}
答案 0 :(得分:2)
在控制器内为路径生成视图时,可以在函数中执行以下操作,以根据数据是否存在来返回包含数据的视图。
public function showNameView() {
if(is_null(Input::get('name_by_user'))
{
return view('my.view')->with(['name' => Input::get('name_by_user')]);
}
else
{
return view('my.view')->with(['name' => Input::get('name_by_user')]);
}
}
答案 1 :(得分:1)
您需要返回相同的视图:
from itertools import groupby
def remove_consecutive_duplicates(iterable):
return [v for v, g in groupby(iterable)]
或者你可以重定向回来:
public function get_name(Request $request)
{
return view('same.view', ['name' => $request->name]);
}
显示名称,如使用会话数据:
return redirect()->back()->with('name', $request->name);
答案 2 :(得分:1)
我会做这样的事情
<强>路线强>
Route::name('names')->get('/find/names', "FindController@get_name");
<强>控制器强>
public function get_name(){
$collection = Input::all();
$name = $collection->pluck('name_by_user');
return view('view_file_in_resources', compact('name'));
}
现在,您的视图中会有一个$names
集合。
但是如果您只想从一行获取结果,那么您的控制器应如下所示:
public function get_name($name){
$name = Input::where('name_by_user', $name)->get();
return view('view_file_in_resources', compact('name'));
}
你的路线档案
Route::name('names')->get('/find/names/{name}', "FindController@get_name");