Laravel 4分页不工作链接可以,但在每页显示所有结果

时间:2014-03-14 11:17:25

标签: php regex .htaccess laravel pagination

在Windows 7中使用Laravel 4作曲家进行的全新安装我在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字段),并在底部看到分页链接。当我点击分页链接时,网址会正确更改为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
{
 }

1 个答案:

答案 0 :(得分:0)

您要将两个结果发送到视图,请使用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>