静态资源的引用以及分页的自动生成
CSS/JS等静态资源的引用
在laravel中我们通常将静态资源放在项目根目录下的public文件夹下,比如:
public/static-------
-- public/static/jq/jquery.js
-- public/static/bootstrap/bs.css, bs.js
呢么在resources/views/blade模板文件中,在引用静态资源的目录的时候,我们可以用asset()方法:
<link rel="stylesheet" href="{{ asset('static/bootstrap/bootstrap.min.css') }}">
其中asset()方法,引用的就是public-静态资源所在的路径。只要传入其中文件路径即可。最终渲染的结果是:
<link rel="stylesheet" href="http://localhost/laravel-demo/public/static/bootstrap/bootstrap.min.css">
Laravel中的分页制作
laravel中制作分页非常简单,我们一起来看一下。
链接数据库
从config/database.php中,可以看到,链接数据库,需要修改根目录下的.env文件。
请参考:数据库操作之DB-facade
新建模型返回数据
新建app/Student.php模型
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
// 指定表名
protected $table = 'student';
public $timestamps = true;
// 设置获取和更新时的格式
protected function getDateFormat()
{
return time();
}
protected function asDateTime($value)
{
return $value;
}
}
控制器中获取指定表的数据
在app/Http/Controllers/StudentController.php中:
namespace App\Http\Controllers;
use App\Student;
class StudentController extends Controller
{
// 学生列表页
public function index()
{
//$students = Student::get(); 获得表中所有数据
// 分页在laravel中使用paginate方法,参数就是每一页的记录数(行数)
$students = Student::paginate(2);
return view('student.index', [
'students' => $students
]);
}
}
$每一页的数据 = Model控制器名称::paginate(每一页的数据数量)
将获得的数据传入模板中。
指定路由
在app/Http/routes.php中,指定访问的控制器和方法:
Route::get('student/index', [
'uses' => 'StudentController@index'
]);
在模板中创建分页
<div class=" pull-right">
{{-- laravel自带一套分页的样式以及实现逻辑
直接执行render()方法输出即可 --}}
{{ $students->render() }}
</div>
$students就是从控制器中传入的每一页的数据对象。执行它的render方法,可以自动渲染出分页的样式。最终渲染出的样式如下:
<ul class="pagination">
<li class="disabled">
<span> «</span>
</li>
<li class="active"><span>1</span></li>
<li>
<a href="http://localhost/laravel-demo/public/student/index?page=2">2</a>
</li>
<li>
<a href="http://localhost/laravel-demo/public/student/index?page=3">3</a>
</li>
<li>
<a href="http://localhost/laravel-demo/public/student/index?page=4"> 4</a>
</li>
<li>
<a href="http://localhost/laravel-demo/public/student/index?page=2" rel="next"> »</a>
</li>
</ul>
如果有定制需求,就根据其结构修改样式即可。