laravel day 3 section 2: 获取数据库数据
这里就比较有意思了,首先我不会介绍static 的调用function的问题,我会在下面写到这里的时候开始描述,所以请不要着急,我们还是一步步慢慢来,
********************************************** 这个是分割线 ************************************
获取数据
之前我们创建过一个controller,所有和这个controller里面相关的东西我们都是放在这controller,比如message controller里面,我们我们放post message 和 get message 的相关function.
这里我们将下面的代码放到message controller里面,并且return 一个view来作为显示页面,绵绵的with意味着我们将这个messages 传进了这个message 页面。
public function getMessage(){
$messages = Message::all();
return view('messages')->with('messages', $messages);
}
这里你看见了,我们使用了
Message::all()
这是什么意思呢,和前面的代码比较,我们在创建一个message的时候我们需要 new 一个 message,因为我们需要一个message 来帮助我们输入各种参数,可是这里,我们实在调用一个message对象里面的静态的(不会变的)function all(); 所以,结论就是,当我们需要调用一个class 的静态function,我们可以伸直不去生成一个对象,就可以直接调用这个function.
********************************************** 这个是分割线 ************************************
Message 页面
@extends('layout.layout');
@section('content')
<h2>message</h2>
@if (count($messages)>1) @foreach ($messages as $message)
<ul class="list-group">
<li class="list-group-item">
{{$message->name}}
</li>
<li class="list-group-item">
{{$message->email}}
</li>
<li class="list-group-item">
{{$message->message}}
</li>
</ul>
@endforeach @endif
@endsection
创建一个message页面,输入上面的代码,
********************************************** 这个是分割线 ************************************
page controller : 一个更加方便的方式来控制页面的routing
这立说明一个很有趣的现象,那就是webapp.php里面controller的调用不需要引入controller
换聚nodejs里面的话就是,不需要import,就可以直接使用一个文件里面的东西,也就是全域
php artisan make:controller PageController
来生成一个controller
class PageController extends Controller
{
public function getHome(){
return view('home');
}
}
webapp.php里面的代码如下
Route::get('/home', 'Pagecontroller@gethome');
这样就可以直接调用啦
********************************************** 这个是分割线 ************************************
laravel 前段active的使用
虽然我比较喜欢前后端分离,但是现在我们用laravel的时候,就需要了解navbar 中active的问题
逻辑是:laravel中根据url的参数来确定当前是不是active
<li class="{{Request::is('/home') ? 'activeClass' : ''}}">
这就是动态的加active