Laravel 5.3:布局视图中的路由
Posted
技术标签:
【中文标题】Laravel 5.3:布局视图中的路由【英文标题】:Laravel 5.3: Routes in layout views 【发布时间】:2017-04-06 18:56:54 【问题描述】:菜单中的链接有问题。
目前,视图之间的链接是通过控制器控制的视图内部的链接完成的。
例如,在这个视图中,
我们有公司的展示视图。
“Edit About Page Tiago”链接如下所示:
<p><a href="route('company.companies.about.edit', $company->companyID)">Edit About Page $company->Company_Name</a></p>
$company->companyID 正在从控制器中被抓取,如下所示:
public function show($id)
//
$company = Company::findOrFail($id);
return view('company.companies.show', compact('company'));
并且有以下路线:
GET|HEAD | company/companies/company | company.companies.show | App\Http\Controllers\CompanyCompaniesController@show | web,company
GET|HEAD | company/companies/about/about/edit | company.companies.about.edit | App\Http\Controllers\CompanyAboutController@edit | web,company |
目前,当我尝试通过菜单访问“关于”时,我正在尝试访问:
<li>
<a href="route('company.companies.about.edit', $company->companyID)"><i class="fa fa-dashboard fa-fw"></i> About</a>
</li>
这是布局视图内的代码。出现以下错误:
我可以做什么,一旦按下“关于”,以与“编辑关于页面 Tiago”相同的方式重定向?
以另一种方式询问,如果 $company 变量在布局视图内而不是在我可以通过控制器执行的普通视图中,我在哪里可以将信息提供给 $company?
这可能是一个需要解决的基本问题,但不知何故阻碍了我。
感谢任何给定的帮助
蒂亚戈
【问题讨论】:
尝试转储控制器中的公司变量(var_dump($name_of_variable)) 什么意思?到哪个控制器?因为是布局视图。这个具体案例是怎么做的? 您可以参考与所有视图共享数据部分中的Data With All Views!希望有帮助 它给出了一些方向,让我们看看能用它做什么,谢谢! 请不要在帖子标题中添加[solved]
。问题不需要这样标记。如果您找到了自己的解决方案,请随时将其作为答案发布在下面,或者如果其中一个答案有助于为您解决问题,请考虑将该答案标记为已接受。否则,您无需执行任何操作。请记住,问题和答案是为未来的访问者准备的,他们会自行决定什么是有帮助的,或者他们是否找到了解决方案,届时他们是否会发布新的答案.
【参考方案1】:
正如@Maraboc 所说,您可以在服务提供商中share data with all your views,但为了做到这一点,您需要在引导过程中提前知道/设置值。此功能通常用于您想要在数据库中或通过某种自定义 CMS 管理的全局值,例如基本标题、元标记等。
还有另一种使用 View Composers 在视图之间共享变量的方法,这可能更适合您的用例。
【讨论】:
看看它的atm,会让你知道它是怎么回事。不过看起来是个不错的解决方案 很抱歉尚未使用此解决方案使其工作。将在接下来的 3 小时内再次尝试,并告诉您进展如何。不过,任何帮助都会非常棒。【参考方案2】:我遇到了同样的问题。我使用的方法与默认 route
不同。在我看来,
<a href="editcompany?id=$company->companyID" class="btn btn-xs btn-info" >EDIT </a>
在我的route.php
我有
Route::get('editcompany','CompanyController@edit');
在我的控制器中,编辑功能是这样的
public function edit()
$id = Input::get('id');
$company = Company::find($id);
return view ('your view',compact('company'));
【讨论】:
找到这个链接,它可能有一些很棒的信息。试图从中提取一些“汁液”。 ***.com/questions/28608527/… 目前,虽然大约:1-使用工匠创建提供程序 2-在 boot() 方法中使用公司信息。为什么这不起作用:我们将尝试在数据库记录存在之前获取它们(lorey 2015 年 10 月 4 日 21:41)(它有 6 个赞成票)以上是关于Laravel 5.3:布局视图中的路由的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.3 - InvalidArgumentException 视图 [索引] 未找到 [重复]
Laravel 5.3 登录路由 - RouteCollection.php 中的 NotFoundHttpException
将Javascript变量传递给laravel 5.3中的路由