Laravel 4分页不工作链接是OK的,但显示每个页面的所有结果


Laravel 4 pagination not working links are OK but shows all results in each page

在windows 7中安装Laravel 4的composer,我在routes.php中:

Route::model('work', 'Work');
Route::get('/', function()
{
    $works = Work::all();
    $allWorks = Work::paginate(5);
    return View::make('hello', compact('works', 'allWorks'));
 });

在视图文件'hello.php'中:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Laravel PHP Framework</title>
</head>
  <body>
    <div class="container">
        <?php foreach ($works as $work) 
    {
       echo $work->title . '<br/>';
    } 
    ?>
</div>
<?php echo $allWorks->links(); ?>
   </body>
 </html>

我有一个有25个条目的数据库。当我导航到'/'路由时,我看到数据库的所有25个结果(所有$work-title字段)和底部的分页链接。当我点击一个分页链接的url正确更改为localhost/laravel/public/?page=1…page=2等,但总是显示所有25个结果。当我更改页码(如 $allWorks = work::paginate(7);)时,链接相应更改。我想我已经做到了,就像在文档中一样,但显然我错过了一些东西。通过谷歌搜索,我发现.htaccess有时会干扰分页。这是我的:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

我不理解正则表达式(也不是它的其他东西),但我已经把它注释掉了,似乎没有什么改变。有人能帮忙吗?由于

我还有一个模型Work.php:

<?php
Class Work extends Eloquent
{
 }

将两个结果都发送给视图,请在routes.php中使用以下行:

return View::make('hello')->with('allWorks', $allWorks);

在视图上(注意<?php foreach ($allWorks as $work)行中使用的变量):

"hello.php":

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Laravel PHP Framework</title>
</head>
  <body>
    <div class="container">
        <?php foreach ($allWorks as $work) 
    {
       echo $work->title . '<br/>';
    } 
    ?>
</div>
<?php echo $allWorks->links(); ?>
   </body>
 </html>