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));
  }

Its 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

以上所述就是本文的全部内容了,希望能够对大家学习Laravel5框架有所帮助 。