ホームページ >バックエンド開発 >PHPチュートリアル >Laravel 5 の基礎 (8) - モデル、コントローラー、ビューの基本プロセス
Laravel 5 の基本 (8) - モデル、コントローラー、ビューの基本プロセス
<code>Route::get('artiles', '[email protected]');</code>
<code> php artisan make:controller ArticlesController --plain</code>
<code><?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; }}</code>
ブラウザで返された JSON 結果を確認できます。
コントローラを変更してビューを返す
<code> public function index() { $articles = Article::all(); return view('articles.index', compact('articles')); }</code>
ビューを作成する
<code>@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</code>
結果を参照します、クール! ! ! !
ルートを追加して詳細情報を表示
<code>Route::get('articles/{id}', '[email protected]');</code>
{id}
は記事を示すパラメータですIDを表示するには、コントローラーを変更します:
<code> public function show($id) { $article = Article::find($id); //若果找不到文章 if (is_null($article)) { //生产环境 APP_DEBUG=false abort(404); } return view('articles.show', compact('article')); }</code>
Laravelにはさらに便利な機能があります。コントローラーを変更します:
<code> public function show($id) { $article = Article::findOrFail($id); return view('articles.show', compact('article')); }</code>
かっこいいです。
新しいビュー
<code>@extends('layout')@section('content') <h1>{{$article->title}}</h1> <article> {{$article->body}} </article>@stop</code>
ブラウザでアクセスしてみます: /articles/1 /articles/2
インデックス ビューを変更
<code>@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('[email protected]', [$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</code>