服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|

服务器之家 - 编程语言 - PHP教程 - Laravel 5框架学习之模型、控制器、视图基础流程

Laravel 5框架学习之模型、控制器、视图基础流程

2020-09-17 16:29PHP教程网 PHP教程

本文给大家介绍的是Laravel5框架中模型、控制器、视图的基础流程,其实MVC体系结构模式将一个交互式系统分为三个组件。模型包含核心功能和数据。视图向用户显示信息。控制器处理用户输入。视图和控制器共同构成了用户接口。

添加路由

 

复制代码 代码如下:

Route::get('artiles', 'ArticlesController@index');

 

创建控制器

 

复制代码 代码如下:

 php artisan make:controller ArticlesController --plain

 

修改控制器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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!

修改控制器,返回视图

?
1
2
3
4
5
public function index() {
   $articles = Article::all();
 
   return view('articles.index', compact('articles'));
 }

创建视图

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@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,修改控制器:

?
1
2
3
4
5
6
7
8
9
10
11
public function show($id) {
  $article = Article::find($id);
 
  //若果找不到文章
  if (is_null($article))
  {
    //生产环境 APP_DEBUG=false
    abort(404);
  }
  return view('articles.show', compact('article'));
}

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

?
1
2
3
4
5
public function show($id) {
  $article = Article::findOrFail($id);
 
  return view('articles.show', compact('article'));
}

It's cool.

新建视图

?
1
2
3
4
5
6
7
8
9
@extends('layout')
 
@section('content')
  <h1>{{$article->title}}</h1>
 
  <article>
    {{$article->body}}
  </article>
@stop

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

修改index视图

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@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框架有所帮助。

延伸 · 阅读

精彩推荐