Php Laravel:向视图传递带有ID和slug的自定义URL

Php Laravel:向视图传递带有ID和slug的自定义URL,php,laravel-4,Php,Laravel 4,我的文章URL包含ID和slug,格式如下:/articles/ID/slug。只有ID用于记录查找,slug只是用于SEO,不存储在数据库中 目前,我正在以我的观点(在foreach循环中)执行此操作: 生成完整的URL,例如:文章/1/accusamus quos et facilis quia,但是我不想在视图中执行此操作。我想在控制器中执行此操作并将其传递给视图,但我不知道如何执行 编辑:我正在将一组多篇文章从控制器传递到视图,所有这些文章都有唯一的URL,具体取决于它们各自的ID和sl

我的文章URL包含ID和slug,格式如下:
/articles/ID/slug
。只有ID用于记录查找,slug只是用于SEO,不存储在数据库中

目前,我正在以我的观点(在foreach循环中)执行此操作:

生成完整的URL,例如:
文章/1/accusamus quos et facilis quia
,但是我不想在视图中执行此操作。我想在控制器中执行此操作并将其传递给视图,但我不知道如何执行


编辑:我正在将一组多篇文章从控制器传递到视图,所有这些文章都有唯一的URL,具体取决于它们各自的ID和slug。

这样做的最佳方法是使用视图演示器:

{{ $article->present()->url() }}
public function url()
{
    URL::route('articles.show', array('id' => $this->id, 'slug' => Str::slug($this->title)));
}
在演示者中:

{{ $article->present()->url() }}
public function url()
{
    URL::route('articles.show', array('id' => $this->id, 'slug' => Str::slug($this->title)));
}
但您可以在模型中创建acessor:

public function getUrlAttribute() 
{
    URL::route('articles.show', array('id' => $this->id, 'slug' => Str::slug($this->title)));
}
并用作:

{{ $article->url }}

有什么问题吗?您是否已将$article传递给控制器?难道你不能在控制器中创建那个url并使用('url',$url)传递它吗?忘了提到:我正在向视图传递一个文章数组,我想我可以枚举所有文章,构建一个url数组并传递它。看起来有点脏,我希望有一些方法可以用这个框架做类似的事情。我在我的模型中添加了一个访问器,谢谢你,先生!这正是我一直在寻找的:)这个“视图演示者”的术语对我来说是新的,我得好好读一读!再次感谢,看起来很有趣。我确信这在很多情况下都是有用的:)每次你需要对需要在视图中显示的内容进行某种修改/格式化/计算时,你都应该在演示者中进行我选择了presenter解决方案,更简洁:)但是在
URL::route
之前不应该有
返回吗?没有它我似乎无法让它工作。。。