在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>