zoukankan      html  css  js  c++  java
  • Laravel 5 基础(八)- 模型、控制器、视图基础流程

    • 添加路由
    Route::get('artiles', 'ArticlesController@index');
    
    • 创建控制器
     php artisan make:controller ArticlesController --plain
    
    • 修改控制器
    <?php namespace AppHttpControllers;
    
    use AppArticle;
    use AppHttpRequests;
    use AppHttpControllersController;
    
    use IlluminateHttpRequest;
    
    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
    
  • 相关阅读:
    mac下用xattr命令来删除文件的扩展属性
    使用vue.js实现checkbox的全选和多个的删除功能
    正则表达式匹配任意字符(包括换行符)的写法
    jQuery Mobile动态刷新页面样式
    jquery mobile各类标签的refresh
    jQuery .attr()和.removeAttr()方法操作元素属性示例
    jquery mobile各类组件刷新方法
    Apache PDFbox开发指南之PDF文档读取
    日期字符串解析--SimpleDateFormat严格限制日期转换setLenient(false)
    hdu5032 Always Cook Mushroom
  • 原文地址:https://www.cnblogs.com/ZhangJinglin/p/4383766.html
Copyright © 2011-2022 走看看