Laravel 5 基础(八)- 模型、控制器、视图基础流程

  • 添加路由
Route::get('artiles', 'ArticlesController@index');
  • 创建控制器
 php artisan make:controller ArticlesController --plain
  • 修改控制器
<?php namespace App\Http\Controllers;

use App\Article;
use App\Http\Requests;
use App\Http\Controllers\Controller; use Illuminate\Http\Request; class ArticlesController extends Controller { public function index() {
$articles = Article::all(); return $articles;
} }

可以在浏览器中看到返回的 JSON 结果,cool!

修改控制器,返回视图

	public function index() {
$articles = Article::all(); return view('articles.index', compact('articles'));
}

创建视图

@extends('layout')

@section('content')
<h1>Articles</h1> @foreach($articles as $article)
<article>
<h2>{{$article->title}}</h2> <div class="body">{{$article->body}}</div>
</article>
@endforeach
@stop

浏览结果,COOL!!!!

  • 显示单个文章

添加显示详细信息的路由

Route::get('articles/{id}', 'ArticlesController@show');

其中,{id} 是参数,表示要显示的文章的 id,修改控制器:

    public function show($id) {
$article = Article::find($id); //若果找不到文章
if (is_null($article))
{
//生产环境 APP_DEBUG=false
abort(404);
}
return view('articles.show', compact('article'));
}

laravel 提供了更加方便的功能,修改控制器:

    public function show($id) {
$article = Article::findOrFail($id); return view('articles.show', compact('article'));
}

It's cool.

新建视图

@extends('layout')

@section('content')
<h1>{{$article->title}}</h1> <article>
{{$article->body}}
</article>
@stop

在浏览器中尝试访问:/articles/1 /articles/2

修改index视图

@extends('layout')

@section('content')
<h1>Articles</h1>
<hr/>
@foreach($articles as $article)
<article>
<h2>
{{--这种方式可以--}}
<a href="/articles/{{$article->id}}">{{$article->title}}</a>
{{--这种方式更加灵活,不限制路径--}}<br>
<a href="{{action('ArticlesController@show', [$article->id])}}">{{$article->title}}</a>
{{--还可以使用--}}<br>
<a href="{{url('/articles', $article->id)}}">{{$article->title}}</a>
</h2> <div class="body">{{$article->body}}</div>
</article>
@endforeach
@stop
上一篇:后端Apache获取前端Nginx反向代理的真实IP地址 (原创贴-转载请注明出处)


下一篇:【C语言】中的版本规范(C89 C99等)