我真的需要你的帮助!
我有一个带有多个导航选项卡的Web应用程序,其内容由属性“ data-url”加载。我需要这样做是因为我在每个选项卡中都显示了大量数据,并且即使不显示每个选项卡,也不想对每个选项卡进行查询。 因此,仅在显示选项卡时才加载内容。 在每个选项卡中,根据用户角色,我加载请求的数据,一条消息,提示您看不到该数据,一条消息,指出未添加该数据,或一个打开模式以插入该数据的按钮。 / p>
例如:
<li class="nav-item" data-url="/{{$document->progressive_number}}/getInfo" data-id="document_info">
<a class="nav-link" data-toggle="tab" href="#document_info">Document info</a>
</li>
<div id="document_info" class="container tab-pane fade"><br>
<div class="card datacard" style="justify-content:center">
@include('loading_boxes')
<h4>Loading...</h4>
</div>
</div>
<script>
$("div#tabs").on("click", "li", function() {
$("div#" + $(this).data("id")).load($(this).data("url"));
});
</script>
我的路线是这样的:
Route::get('/{document}/getInfo', 'DocumentController@getInfo')->middleware('auth');
控制器的作用:
public function getInfo(Request $request)
{
if(! Auth::user()->hasPermission('view-info'))
{
return view('generalerror', ['name' => 'Info' , 'error' => "You can't view this data"]);
}
$document = Document::find(request('document'));
$info = $document ->info ;
if($info)
{
return view('document/info', ['info' =>$info]);
}
else
{
if(Auth::user()->hasPermission('store-info'))
{
return view('store_info_modal', ['Document' =>$document]);
}
return view('generalerror', ['name' => 'Info' , 'error' => "This data has not been added yet"]);
}
}
当我打开模态并发送表格时,我在控制器中调用此函数:
public function storeInfo(StoreInfoRequest $request)
{
DocumentInfo::create([
'info' => request('info'),
'document' => request('document'),
'user_id' => Auth::user()->id
]);
return redirect()->back();
}
现在问题是: 如您所见,我正在使用自定义请求类,它可以正常工作。无论如何,如果验证器失败,则会在主页上重定向用户。当我导航到“信息”选项卡并重新打开模态时,单击按钮,由于我的模态是从控制器中加载的,因此错误信息不会显示在表单中。
您是否建议采用其他实现方式,或者您对我的问题有任何解决方案? 提前致谢。 干杯!