2

我正在努力理解一些我相信你们中的一个人能够轻松解释的东西。我对 MVC 有点陌生,所以请多多包涵。

我创建了一个控制器来处理与连接到 Twitter API 和将返回的 JSON 处理为 HTML 相关的所有工作。

Route::get('/about', 'TwitterController@getTweets');

然后我使用:

return View::make('templates.about', array('twitter_html' => $twitter_html ))

在我的控制器中将生成的 HTML 传递给我的视图,一切正常。

我的问题是我有多个页面,用于在每个页面上显示不同的 Twitter 用户的推文。我想做的是向我的控制器传递一个值数组(推特句柄),然后它将在 API 调用中使用。我不想做的是为每个用户组设置不同的控制器。如果我$twitter_user_ids在我的控制器中设置,我可以使用该数组来提取推文,但我想设置数组并以某种方式将其传递给控制器​​。我认为会有类似的东西

Route::get('/about', 'TwitterController@getTweets('twitter_id')');

但最后一个不起作用。

我相信我的问题以某种方式与变量范围有关,但我可能会走得很远。

我在这里走错路了吗?如何传递我的控制器不同的数据集以产生不同的结果?

编辑 - 更多信息

Markus 建议使用 Route Parameters,但我不确定这是否适用于我的目标。这是我的具体用例。

我有一个关于页面,它将从 Twitters API 中提取我的推文并将它们显示在页面上。我还有一个“推文”页面,它会从几个开发人员帐户中提取最新的推文并显示它们。

在这两种情况下,我都有 $twitter_user_ids = array() 在数组中具有不同的值。

我构建的控制器获取该用户名数组并访问 API 并生成传递给我的视图的 HTML。

因为我正在使用一个数组(其中第二个是一个大数组),所以我认为 Route Parameters 不会起作用。

再次感谢您的帮助。没有你们,我做不到!

4

1 回答 1

2

首先,这里有一个快速提示:

代替

return View::make('templates.about', array('twitter_html' => $twitter_html ))

...利用

return View::make('templates.about', compact('twitter_html'))

这会自动为您创建 $twitter_html。在PHP 手册中查看。

 

现在解决您的问题:

你做错了路线部分。尝试:

Route::get('/about/{twitter_id}', 'TwitterController@getTweets');

这会将 twitter_id 参数传递给您的 getTweets 函数。

查看 Laravel 文档:http ://laravel.com/docs/routing#route-parameters

于 2013-08-10T22:09:32.870 回答