php - 命名空间更改后的 Laravel link_to_route

标签 php laravel laravel-4 namespaces

我正在根据教程制作一个基本的 CRUD 应用程序,但意识到我想屏蔽管理文件夹中的功能。

该功能是一个博客管理系统(索引、创建、显示、删除等),这一切都来自 domain.com/blog。

从那时起,我建立了一个用户系统和一个 protected 管理区域,因此决定将 View 文件移动到一个管理文件夹中。

为了应对这种变化,我在这里询问并被指示将我的资源路线包装在这个:

Route::group(array('before' => 'is_admin', 'namespace' => 'admin', 'prefix' => 'admin'), function()
  Route::resource('blog', 'BlogController');
});

然后将我的 BlogController 移动到我的 Controller 文件夹中的 admin 文件夹中,然后向该 Controller 添加一个命名空间:
namespace Admin;

并在 BaseController 之前添加一个反斜杠。

这条线在这里:
return View::make('admin/blog.index', compact('blogs'));

导致错误,所以我不得不在 View::之前添加一个反斜杠
return \View::make('admin/blog.index', compact('blogs'));

我如何不必为所有类(class)都这样做?

然后一旦没问题,我的索引文件包含:
{{ link_to_route('blog.create', 'Add new blog') }}

哪个返回未定义的路由错误......我哪里出错了?资源路线应该肯定会捕捉这些路线等吗?似乎有很多工作只是让 BlogController 在管理目录中工作......

最佳答案

这就是命名空间的工作方式。您可以 import namespaces添加:

use View;

现在你可以只使用 View而不是 \View在文件的其他位置,因此文件的开头应如下所示:
<?php namespace Admin;
   use View;

但是您需要将此添加到您移动到命名空间 Admin 的每个文件中。 ;

您也可以阅读 How to use objects from other namespaces and how to import namespaces in PHP更好地理解它。

关于php - 命名空间更改后的 Laravel link_to_route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28903237/

相关文章:

大型网站的 Laravel 本地化

php - 格式化日期,日期的序号后缀

php - jQuery IF 语句不起作用

php - Laravel 验证 - 检查有效的重复电子邮件

laravel - 参数 #1 必须是模型类型,Pest\Mock\Mock 给定

php - Laravel 具体如何构建和检查 CSRF token ?

jquery - Laravel 4 使用 jQuery 表单插件将整个表单作为变量发送

php - 从三个表中检查电子邮件是否存在

PHP - 应用程序配置文件存储为 - ini、php、sql、cached、php 类、JSON、php 数组?

php - 尝试显示按钮时出错