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('articles.index', compact('articles')); }
Create the view
@extends('layout') @section('content') <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('articles/{id}', 'ArticlesController@show');
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('articles.show', compact('article')); }
laravel provides more convenient functions, modify the controller:
public function show($id) { $article = Article::findOrFail($id); return view('articles.show', compact('article')); }
It's cool.
New view
@extends('layout') @section('content') <h1>{{$article->title}}</h1> <article> {{$article->body}} </article> @stop
Try to access: /articles/1 /articles/2
Modify index view
@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> <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!