【发布时间】:2018-12-08 21:11:48
【问题描述】:
我有一个带有 index() 的 UserController,它返回视图状态为“D”(草稿)的会议、过去的会议和已发布的会议。
视图中有一个表单,用户可以输入名称来搜索用户创建的会议名称。
我的疑问是用户单击“搜索”按钮后如何在视图中正确显示搜索结果。因为它显示为“未定义的变量:searchedConferences”。
用户控制器:
class UserController extends Controller
{
public function index(Request $request){
$pageLimit = 5;
$user = $request->user();
$draftConferences = $user->conferences()->where('status','D')->paginate($pageLimit);
$pastConferences = $user->conferences()->where('end_date','<', now())->paginate($pageLimit);
$publishedConferences = $user->conferences()->where('status','P')->paginate($pageLimit);
return view('users.index',
compact('user', 'draftConferences', 'pastConferences', 'publishedConferences'));
}
public function searchConference(Request $request)
{
$user = Auth::user();
$search = $request->search_conference;
$conferences = Conference::where('name', 'LIKE', '%'.$search.'%')->where('creator_id',$user->id)->get();
//dd($conferences);
return redirect(route('user.index', ['user' => Auth::id()]) . '#myConferences')->with('searchedConferences', $conferences);
}
}
然后在视图中我有一个表单供用户搜索会议。在表格下方,它显示从 index() 返回的数据。有 3 个选项卡(会议草案、已发布会议、已完成会议),默认情况下,会议草案选项卡处于活动状态。当用户在另一个选项卡中单击时,它会显示在选项卡内容中该特定选项卡的结果(过去的会议、草稿会议或 finsih 会议)。
<form method="post" method="POST" action="{{ route('user.searchConference') }}">
{{ csrf_field() }}
<div class="form-group">
<input type='text' class="form-control" placeholder="Search conferences" name="search_conference"/>
<button>Search</button>
</div>
</form>
@if(!empty($searchedConferences))
{{$searchedConferences}}
@else
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active border" href="#draftConferences" data-toggle="tab" role="tab">Draft Conferences</a>
</li>
<li class="nav-item">
<a class="nav-link border" href="#publishedConferences" data-toggle="tab" role="tab">Published Conferences</a>
</li>
<li class="nav-item">
<a class="nav-link border" href="#finishedConferences" data-toggle="tab" role="tab">Conferences Archived</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade active show clearfix" id="draftConferences" role="tabpanel" aria-labelledby="home-tab">
<ul class="list-group">
@foreach($draftConferences as $draftConference)
@if(!empty($draftConference))
<li class="list-group-item">
<h5>{{$draftConference->name}}</h5>
</li>
@endif
@endforeach
<div>
{{$draftConferences->fragment('draftConferences')->links("pagination::bootstrap-4")}}
</div>
</div>
<!-- same structure for the "#publishedConferences" and "#finishedConferences" -->
</div>
【问题讨论】: