好久没玩laravel了,5.6玩下(三)

好了,基础的测试通了,咱们开始增删改了

思路整理

先创建项目功能控制器

然后设置路由访问规则

然后开发项目的增删改功能

1 先创建项目的控制器

php artisan make:controller ProjectsController

生成的文件在 blog\app\Http\Controllers  这个目录下

2 设置路由访问规则,找到文件  blog\app\routes\web.php 添加如下代码

Route::resource('projects', 'ProjectsController');Route::get('projects/show/{id}', 'ProjectsController@show');

意思是可以访问projects的控制器

3 填充 项目控制器

blog\app\http\Controllers\ProjectsController

<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;
use App\Projects;class ProjectsController extends Controller
{/***保存*/public function store(Request $request){$projects = new Projects;$projects->name = $request->input('name');$projects->author = $request->input('author');$projects->description = $request->input('description');if ($projects->save()) {return redirect('projects');} else {return back()->withInput()->withErrors('添加失败,请重试');}}//更新public function update(Request $request,$id){$projects = Projects::find($id); $projects->name = $request->input('name');$projects->author = $request->input('author');$projects->description = $request->input('description');if ($projects->save()) {return redirect('projects');} else {return back()->withInput()->withErrors('更新失败,请重试');}}//添加public function create(){return view('projects.create');}//编辑public function edit($id){$project=Projects::find($id);return view('projects.edit',compact('project'));}//删除public function destroy($id){$project = Projects::find($id);$project->delete();return redirect('projects');}//列表public function index(){$projects = Projects::all();return view('projects.index',compact('projects'));}//显示public function show($id){$project=Projects::find($id);return view('projects.show',compact('project'));}
}

4 设置模板页

模板页面位置在blog\resources\views 这个位置

1)在views\layouts\app.blade.php  改成如下代码

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- CSRF Token --><meta name="csrf-token" content="{{ csrf_token() }}"><title>{{ config('app.name', 'Laravel') }}</title><!-- Scripts --><script src="{{ asset('js/app.js') }}" defer></script><!-- Fonts --><link rel="dns-prefetch" href="https://fonts.gstatic.com"><link href="https://fonts.googleapis.com/css?family=Raleway:300,400,600" rel="stylesheet" type="text/css"><!-- Styles --><link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body><div id="app"><nav class="navbar navbar-expand-md navbar-light navbar-laravel"><div class="container"><a class="navbar-brand" href="{{ url('/') }}">{{ config('app.name', 'Laravel') }}</a><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarSupportedContent"><!-- Left Side Of Navbar --><ul class="navbar-nav mr-auto">                       <li><a href="/home">后台首页&nbsp;&nbsp;&nbsp;&nbsp;</a></li><li><a href="/projects">管理项目</a></li></ul><!-- Right Side Of Navbar --><ul class="navbar-nav ml-auto"><!-- Authentication Links -->@guest<li class="nav-item"><a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a></li><li class="nav-item"><a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a></li>@else<li class="nav-item dropdown"><a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>{{ Auth::user()->name }} <span class="caret"></span></a><div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown"><a class="dropdown-item" href="{{ route('logout') }}"onclick="event.preventDefault();document.getElementById('logout-form').submit();">{{ __('Logout') }}</a><form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">@csrf</form></div></li>@endguest</ul></div></div></nav><main class="py-4">@yield('content')</main></div>
</body>
</html>

其实就是在顶部增加2个链接  一个项目管理  一个后台首页  其他都是原来的代码

2)

我们新建一个projects文件夹

新建4个模板文件

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>Whoops!</strong> There were some problems with your input.<br><br><ul>@foreach ($errors->all() as $error)<li>{{ $error }}</li>@endforeach</ul></div>@endif<form action="{{ URL('projects') }}" enctype="multipart/form-data" method="POST"><input type="hidden" name="_token" value="{{ csrf_token() }}">项目标题:<input type="text" name="name" class="form-control" required="required"><br>项目作者:<input type="text" name="author" class="form-control" required="required"><br>项目内容: <textarea name="description" rows="10" class="form-control"></textarea><br><button class="btn btn-lg btn-info">新增项目</button></form></div></div></div></div>
</div>
@endsection

edit.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>Whoops!</strong> There were some problems with your input.<br><br><ul>@foreach ($errors->all() as $error)<li>{{ $error }}</li>@endforeach</ul></div>@endif<form action="{{ URL('projects/'.$project->id) }}" enctype="multipart/form-data" method="POST"><input name="_method" type="hidden" value="PUT"><input type="hidden" name="_token" value="{{ csrf_token() }}">项目标题:<input type="text" name="name" class="form-control" required="required" value="{{ $project->name }}"><br>项目作者:<input type="text" name="author" class="form-control" required="required" value="{{ $project->author }}">      <br><br>项目内容:<textarea name="description" rows="10" class="form-control" required="required">{{ $project->description }}</textarea><br><button class="btn btn-lg btn-info">编辑项目</button></form></div></div></div></div>
</div>
@endsection

index.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"><a href="{{ URL('projects/create') }}" class="btn btn-lg btn-primary">新增</a><table class="table table-striped"><tr class="row"><th class="col-lg-2">标题</th><th class="col-lg-2">作者</th><th class="col-lg-4">查看</th><th class="col-lg-1">编辑</th><th class="col-lg-1">删除</th></tr>@foreach ($projects as $project)<tr class="row"><td class="col-lg-2">{{ $project->name }}</td><td class="col-lg-2">{{ $project->author }}</td><td class="col-lg-4"><a href="{{ URL('projects/show/'.$project->id) }}" target="_blank">{{ App\Projects::find($project->id)->name }}</a></td><td class="col-lg-1"><a href="{{ URL('projects/'.$project->id.'/edit') }}" class="btn btn-success">编辑</a></td><td class="col-lg-1"><form action="{{ URL('projects/'.$project->id) }}" method="POST" style="display: inline;"><input name="_method" type="hidden" value="DELETE"><input type="hidden" name="_token" value="{{ csrf_token() }}"><button type="submit" class="btn btn-danger">删除</button></form></td></tr>@endforeach</table></div></div></div></div>
</div>
@endsection

show.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>Whoops!</strong> There were some problems with your input.<br><br><ul>@foreach ($errors->all() as $error)<li>{{ $error }}</li>@endforeach</ul></div>@endif<input name="_method" type="hidden" value="PUT"><input type="hidden" name="_token" value="{{ csrf_token() }}">项目标题:{{ $project->name }}<br>项目作者:{{ $project->author }}<br>            <br><br>项目内容:{{ $project->description }}<br></div></div></div></div>
</div>
@endsection

5 登录后台  操作增删改查

列表

编辑

新增

显示

大功告成,增删改查

posted on 2018-06-26 15:53 baker95935 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/baker95935/p/9229525.html

好久没玩laravel了,5.6玩下(三)相关推荐

  1. 机房计算机没游戏,一款童年必玩的游戏,小学机房肯定安装,如今都不一定能过关!...

    作为90后的我们,在小时候很多人家里并没有电脑,可能有些小部分小伙伴家里没电脑,但是家里的亲戚有电脑,于是我们去亲戚家的时候就看着那些舅舅姑妈哥哥姐姐大姨他们玩游戏,当时自己玩不了,只能看着他们玩我就 ...

  2. 计算机课上玩的打字游戏,上电脑课时偷偷玩的3个游戏,这些都没玩过,别说自己玩过游戏!...

    原标题:上电脑课时偷偷玩的3个游戏,这些都没玩过,别说自己玩过游戏! 大家好啊,小编又和大家见面了,想必大家都知道,电脑在被发明出来以后,游戏也是随之而然的被加入到了电脑中,而在一开始的时候电脑的游戏 ...

  3. 好久没到这个地方来.

    懒了,好久没写随笔了,学的东西不少,学过就忘记.没有整理,不成系统.最近也没什么好说的,瞎掰一通吧.--有时候觉得,我就是个愤青. 总感觉自己的思维很混乱,很没有头绪,东边拉袋水泥,西边拼块砖头的,没 ...

  4. 通通玩blend美工(6)下——仿iPhone滚动选择器的ListBox(交互逻辑)

    原文:通通玩blend美工(6)下--仿iPhone滚动选择器的ListBox(交互逻辑) 上一篇我们已经把界面画出来了,这篇我们就来制作交互的逻辑吧.上一篇的电梯: http://www.cnblo ...

  5. ipad云计算机,过气iPad2还能这么玩!用云电脑玩PC云游戏

    原标题:过气iPad2还能这么玩!用云电脑玩PC云游戏 作为2011年3月发布的iPad2至今已经过去了7年,在这7年里iPad系列已经更新迭代了多个版本,最新的iPad PRO无论是性能.颜值都超越 ...

  6. 深度linux系统能玩dota1吗,deepin能玩Dota2吗(deepin支持的游戏)

    处理器 英特尔 Pentium(奔腾) 双核 E2140 @ 1.60GHz 配上gt240和3gddr2 . 可以的,这个CPU略低~! 其实win10 系统中出现游戏,软件崩溃已经有不少的案例了. ...

  7. 华为云计算机玩游戏,华为云电脑玩游戏怎么样?华为云电脑玩游戏卡吗?

    华为云电脑本质上就是一台个人电脑,当然可以玩游戏啊.我玩一些小型的在线游戏,QQ斗地主,四川麻将,体验还不错. 但是大型游戏,3D游戏等,需要GPU显卡的支持,2018年的时候华为云电脑还没配置GPU ...

  8. 八十年代 人们在玩什么游戏~你都玩过吗?

    八十年代 人们在玩什么游戏~你都玩过吗? 八十年代的中国,没有电脑,没有网络游戏,没有PSP,没有萝莉,也没有机会看美国大片.对于现在25-35岁这个年龄段的人来说,下面的20种"游戏&qu ...

  9. 好久没更新日志了啊~!!今天发一个AS3的播放器

    好久没更新日志了啊~!! 今天上来帖一下这几天学习AS3的成果.用AS3写了个简陋的播放器,虽说基本的功能都全了, 而且没动一笔一划,图形界面也由graphics生成的. http://soccer. ...

最新文章

  1. 微信公众平台开发,自定义菜单,群发消息,网页授权(3)
  2. 贪心:磁带最优存储与磁盘文件最优存储
  3. 关于yum的/repodata/repomd.xml错误
  4. RabbitMQ中的虚拟主机、交换机、消息队列、绑定、消息
  5. Java学习之路(七):泛型
  6. 配置文件值注入 ||导入配置文件处理器,以后编写配置就有提示
  7. Ubuntu 16.04使用root 帐号开启 SSH 登录
  8. hadoop yarn 获取日志_Hadoop YARN日志查看方式
  9. Ceres-Solver库入门
  10. 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
  11. 怎样修改美国的服务器节点,美国云服务器节点怎么
  12. unity3d 绘制小地图_Unity3D —— 小地图制作插件NJG MiniMap
  13. 分析方法选讲期末复习脉络图---完结版
  14. 全场景效能平台猪齿鱼 VS Jira
  15. 吴恩达机器学习:week1
  16. 对 捕鱼达人1.01 的全程破解分析
  17. git did not exit cleanly
  18. 厦门商标注册网商标产权关系
  19. printf函数,fprintf函数,sprintf函数
  20. Flink的State概述

热门文章

  1. 复习Java字节流_字符流使用及案例
  2. 单链表的应用(电话本)
  3. git gui怎么拉取项目代码_Git可视化极简易教程 — Git GUI使用方法
  4. git如何切换分支_拜托,不要再问我Git分支如何使用
  5. Vue3 高级语法(一)—— h函数、jsx
  6. 路由算法及路由协议(详解)
  7. LeetCode 764. 最大加号标志(DP)
  8. LeetCode 971. 翻转二叉树以匹配先序遍历(DFS)
  9. 数据结构--树状数组
  10. 程序员面试金典 - 面试题 04.06. 后继者(循环中序遍历)