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


Posted in PHP onApril 08, 2015

添加路由

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

It's 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框架有所帮助。

PHP 相关文章推荐
也谈php网站在线人数统计
Apr 09 PHP
PHP读取MySQL数据代码
Jun 05 PHP
php SQL Injection with MySQL
Feb 27 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
基于php实现长连接的方法与注意事项的问题
May 10 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
PHP文件上传之多文件上传的实现思路
Jan 27 PHP
php 多文件上传的实现实例
Oct 23 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
ThinkPHP中create()方法自动验证实例
Apr 26 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
Apr 08 #PHP
Laravel 5框架学习之数据库迁移(Migrations)
Apr 08 #PHP
Laravel 5框架学习之环境与配置
Apr 08 #PHP
Laravel 5框架学习之Blade 简介
Apr 08 #PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 #PHP
Laravel 5框架学习之向视图传送数据
Apr 08 #PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 #PHP
You might like
IIS6的PHP最佳配置方法
2007/03/19 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
python获取当前日期和时间的方法
2015/04/30 Python
python实现读取命令行参数的方法
2015/05/22 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
python中for用来遍历range函数的方法
2018/06/08 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
使用Python进行目录的对比方法
2018/11/01 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
应届生体育教师自荐信
2013/10/03 职场文书
房产代理公证处委托书
2014/04/04 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
vue使用watch监听属性变化
2022/04/30 Vue.js
Redis批量生成数据的实现
2022/06/05 Redis
JS实现简单的九宫格抽奖
2022/06/28 Javascript