Home  >  Article  >  Backend Development  >  Learning about the model and controller of the Laravel 5 framework and the basic flow of views

Learning about the model and controller of the Laravel 5 framework and the basic flow of views

不言
不言Original
2018-06-13 09:57:082463browse

This article introduces to you the basic process of models, controllers, and views in the Laravel5 framework. In fact, the MVC architecture pattern divides an interactive system into three components. Models contain core functionality and data. Views display information to the user. Controllers handle user input. Views and controllers together form the user interface.

Add route

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

Create controller

php artisan make:controller ArticlesController --plain

Modify controller

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

}

You can see the returned JSON result in the browser, cool!

Modify the controller and return the view

 public function index() {
    $articles = Article::all();

    return view(&#39;articles.index&#39;, compact(&#39;articles&#39;));
  }

Create the view

@extends(&#39;layout&#39;)

@section(&#39;content&#39;)
  <h1>Articles</h1>

  @foreach($articles as $article)
    <article>
      <h2>{{$article->title}}</h2>

      <p class="body">{{$article->body}}</p>
    </article>
  @endforeach
@stop

Browse the results, COOL! ! ! !

Display a single article

Add a route to display detailed information

Route::get(&#39;articles/{id}&#39;, &#39;ArticlesController@show&#39;);

Among them, {id} is a parameter, indicating that you want The id of the displayed article, modify the controller:

  public function show($id) {
    $article = Article::find($id);

    //若果找不到文章
    if (is_null($article))
    {
      //生产环境 APP_DEBUG=false
      abort(404);
    }
    return view(&#39;articles.show&#39;, compact(&#39;article&#39;));
  }

laravel provides more convenient functions, modify the controller:

  public function show($id) {
    $article = Article::findOrFail($id);

    return view(&#39;articles.show&#39;, compact(&#39;article&#39;));
  }

It's cool.

New view

@extends(&#39;layout&#39;)

@section(&#39;content&#39;)
  <h1>{{$article->title}}</h1>

  <article>
    {{$article->body}}
  </article>
@stop

Try to access: /articles/1 /articles/2

Modify index view

@extends(&#39;layout&#39;)

@section(&#39;content&#39;)
  <h1>Articles</h1>
  <hr/>
  @foreach($articles as $article)
    <article>
      <h2>
        {{--这种方式可以--}}
        <a href="/articles/{{$article->id}}">{{$article->title}}</a>
        {{--这种方式更加灵活,不限制路径--}}<br>
        <a href="{{action(&#39;ArticlesController@show&#39;, [$article->id])}}">{{$article->title}}</a>
        {{--还可以使用--}}<br>
        <a href="{{url(&#39;/articles&#39;, $article->id)}}">{{$article->title}}</a>
      </h2>

      <p class="body">{{$article->body}}</p>
    </article>
  @endforeach
@stop

The above is this article The entire content, I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

About the binding operation of Laravel framework routing and controller

The above is the detailed content of Learning about the model and controller of the Laravel 5 framework and the basic flow of views. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn