设为首页 加入收藏

TOP

Laravel 系列入门教程(四)【最适合中国人的 Laravel 教程】(一)
2019-08-24 00:02:50 】 浏览:111
Tags:Laravel 系列 入门教程 适合 国人 教程

本篇文章中,我将跟大家一起实现 Article 的新增、编辑和删除功能,仔细解读每一段代码,相信本篇文章看完,你就能够 get Laravel 使用之道。

RESTful 资源控制器

资源控制器是 Laravel 内部的一种功能强大的约定,它约定了一系列对某一种资源进行“增删改查”操作的路由配置,让我们不再需要对每一项需要管理的资源都写 N 行重复形式的路由。中文文档见:https://d.laravel-china.org/docs/5.5/controllers#resource-controllers

我们只需要写一行简单的路由:

Route::resource('photo', 'PhotoController');

就可以得到下面 7 条路由配置:

左边是 HTTP 方法,中间是 URL 路径,右边是 控制器中对应的函数,只要某个请求符合这七行中某一行的要求,那么这条请求就会触发第三列的 function。这是 Laravel 对于 RESTful 的规范,它不仅仅帮我们省去了几行路由配置代码,更是如何合理规划 URL 的指路明灯,相信你会从中学到很多。

下面我们正式开始一项一项地实现 Article 的新增、编辑、删除功能:

开始行动

配置资源路由

将当前路由配置中的 Route::get('article', 'ArticleController@index'); 改成 Route::resource('articles', 'ArticleController');,哦了。注意,article 单数变成了复数。

修改之前写好的视图文件

由于从单数变成了复数,后台首页及文章列表页的视图文件里的链接也需要修改。

  1. 修改 learnlaravel5/resources/views/admin/home.blade.php 中的 {{ url('admin/article') }} 为 {{ url('admin/articles') }}
  2. 修改 learnlaravel5/resources/views/admin/article/index.blade.php 中的 {{ url('admin/article/create') }} 为 {{ url('admin/articles/create') }};修改 {{ url('admin/article/'.$article->id.'/edit') }} 为 {{ url('admin/articles/'.$article->id.'/edit') }};修改 {{ url('admin/article/'.$article->id) }} 为 {{ url('admin/articles/'.$article->id) }}

新增 Article

新增一篇文章需要两个动作:第一步,获取“新增Article”的页面;第二步,提交数据到后端,插入一篇文章到数据库。我们使用下图中红框内的两条路由规则来实现这两步操作:

获取“新增Article”的页面

第一个红框里告诉我们应该使用 /admin/articles/create 对应“新增Article”的页面,浏览器使用 GET 方法从服务器获取,对应的是 ArticleController 中的 create() 方法,下面我们手动新建这个方法:

public function create()
{
    return view('admin/article/create');
}

新增视图文件 learnlaravel5/resources/views/admin/article/create.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-10 col-md-offset-1">
            <div class="panel panel-default">
                <div class="panel-heading">新增一篇文章</div>
                <div class="panel-body">

                    @if (count($errors) > 0)
                        <div class="alert alert-danger">
                            <strong>新增失败</strong> 输入不符合要求<br><br>
                            {!! implode('<br>', $errors->all()) !!}
                        </div>
                    @endif

                    <form action="{{ url('admin/articles') }}" method="POST">
                        {!! csrf_field() !!}
                        <input type="text" name="title" class="form-control" required="required" placeholder="请输入标题">
                        <br>
                        <textarea name="body" rows="10" class="form-control" required="required" placeholder="请输入内容"></textarea>
                        <br>
                        <button class="btn btn-lg btn-info">新增文章</button>
                    </form>

                </div>
            </div>
        </div>
    </div>
</div>
@endsection

点击文章管理页面最上面的“新增”按钮,你将得到以下页面:

视图调用

上文中我使用 return view('admin/article/create'); 返回了视图文件。

view() 方法是 Laravel 中一个全局的方法,用于调用视图文件,他接受一个字符串参数,并会按照这个参数去调取对应的路由,这很容易理解。实际上 'admin/article/create'&nbs

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇服务器对接码云webhooks 下一篇laravel文件上传

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目