【问题标题】:Laravel route function in db seeder filedb种子文件中的Laravel路由功能
【发布时间】:2014-09-07 21:08:45
【问题描述】:

我正在尝试从命名路由中获取 url。当我在头文件中调用方法时

<a href="{{route('cmsPage', 'thematic_areas')}}" class="dropdown-toggle" data-hover="dropdown">Thematic Areas<b class="caret"></b></a>

结果正确

http://hassaan.discover.local/page/thematic_areas

而当在 db seeder 文件中调用相同的方法时

AdminNavBar::create(array('name'=>'Thematic Area', 'link'=>route('cmsPage', 'thematic_areas'), 'parent_id'=>'0'));

结果不正确。 (从 php artisan 运行种子后存储在 db 中的 URL)

http://localhost/page/thematic_areas

我无法弄清楚为什么在播种时基本 URL 会变得不同

【问题讨论】:

  • 你的 config/app.php 中的 url 是什么?
  • 实际设置为 localhost。现在我已经改变了它并完美地工作。感谢您指出。

标签: php laravel laravel-4 routing seeding


【解决方案1】:

看起来工匠正在为您的网络服务器选择不同的环境配置。 config/app.php中的url设置默认为http://localhost

在调用 artisan db:seed 时尝试使用 --env=local(或任何正确的环境)标志

【讨论】:

  • 这可能根本不是环境问题。在 CLI 上,像 $_SERVER 这样的超全局变量不可用,因此很难自动动态解析 URL。这就是必须为 CLI 任务手动设置应用程序 URL 的原因。
  • 路由方法使用配置设置来获取该 URL,而不是超全局。更有可能存在具有正确域的 config/local/app.php,但 config/app.php 尚未更新。默认情况下,工匠使用生产配置。
  • 好的!感谢您的澄清。这只是一个猜测,我没有看路由方法。到目前为止答案很好!
  • 我只是碰巧经历过 URL 辅助方法 - 这真是个兔子洞哈哈
  • 谢谢judereid!。你是对的 config/app.php 没有更新。现在 db:seed 在更新后可以正常工作了。
猜你喜欢
  • 2014-02-15
  • 2015-10-19
  • 2013-12-01
  • 2015-08-15
  • 2020-01-06
  • 2015-05-14
  • 2018-04-22
  • 2018-01-06
  • 1970-01-01
相关资源
最近更新 更多