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

好久没玩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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI祭出120亿参数魔法模型!从文本合成图像栩栩如生,仿佛拥有人类的语言想象力...

来源&#xff1a;AI科技评论作者&#xff1a;OpenAI编译&#xff1a;贝爽、陈大鑫前几个月GPT-3刚刚问世的时候&#xff0c;能够根据一段话就写出一个小说、一段哲学语录&#xff0c;就足以令AI圈为之感到兴奋。然而2020年刚刚开始没多久&#xff0c;OpenAI又实现一重大突破&am…

MySQL快速生成连续整数

很多时候需要用到连续的id进行数据对比&#xff0c;如判断是否连续等问题。那么&#xff0c;生成连续整数的方式有多种&#xff0c;首先容易想到的是逐步循环&#xff0c;如果想生成1kw条记录&#xff0c;则需要循环1kw次进行插入&#xff0c;那么有没有其他方式呢&#xff0c;…

MySQL小问题:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents...

这是因为时区设置不对 问题背景&#xff1a; 在运行storm项目&#xff0c;进行页面显示的时候&#xff0c;报错&#xff1a; java.sql.SQLException: The server time zone value is unrecognized or represents more than one time zone. 这是时区的问题。 我采用的第一个…

中国电子信息工程科技发展十四大趋势(2021)

来源&#xff1a;科技日报、中国电子报&#xff08;转载请注明来源&#xff09;编辑&#xff1a;蒲蒲1月5日&#xff0c;中国工程院信息与电子工程学部、中国信息与电子工程科技发展战略研究中心发布“中国电子信息工程科技发展十四大趋势&#xff08;2021&#xff09;”&#…

rosserial_java_[学习笔记]Rosserial实现Windows-ROS交互操作(1)

安装sudo apt-get install ros-indigo-rosserial-windowssudo apt-get install ros-indigo-rosserial-server编译rosrun rosserial_windows make_libraries.py my_library运行后会产生一个my_library文件夹&#xff0c;在my_library这个文件夹下会生成ros_lib文件夹Windows下创…

Leetcode--122. 买卖股票的最佳时机Ⅱ

给定一个数组&#xff0c;它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;。 注意&#xff1a;你不能同时参与多笔交易&#xff08;你必须在再次购买前出售掉…

语法树的画法(根据文法求字符串)

目录 1.语法树的画法 2.语法树的短语 3.直接短语&#xff08;直接到根部&#xff09; 4.素短语 5.句柄 6.算符优先分析句型 1.语法树的画法 文法G[E]:E->EE | E*E | (E) | i ,字符串 ii*i 推导方式有两种最左推导和最右推导&#xff08;推导的技巧就是逐步靠近字符串…

AI专家喋喋不休展开争论 为什么说预测是智能的本质

来源&#xff1a; 网易智能编译&#xff1a;网易智能 选自&#xff1a;medium参与:Rosie【网易智能讯 6月22日消息】机器学习和智能都植根于预测&#xff0c;这是巧合吗&#xff1f;当我们的技术体现了智能的本质时&#xff0c;我们正在接近一个紧要关头吗&#xff1f;或者说我…

图解丨卷积神经网络数学原理解析

原标题&#xff1a;Gentle Dive into Math Behind Convolutional Neural Networks作 者&#xff1a;Piotr Skalski 编 辑 | Pita  翻 译&#xff1a;通夜&#xff08;中山大学&#xff09;、had_in&#xff08;电子科技大学&#xff09;自动驾驶、智能医疗保健和自助零售这…

[2018湖南省队集训] 6.28 T3 simulate

这道模拟题出的我毫无脾气2333 最重要的是先要发现操作顺序不影响最后的答案&#xff0c;也就是每次随便挑一个>2的数进行操作最后总是可以得到同样的数列。 (这个还不太难想qwq) 但是最骚的是接下来的模拟。。。。 我们考虑从左到右消&#xff0c;假设目前在i&#xff0c;1…

“AI工厂”本质:AI基础设施及怎样将AI转化为运营动力

来源&#xff1a;TechTalks作者&#xff1a;Ben Dickson编译&#xff1a;科技行者持续关注人工智能新闻的朋友肯定已经发现&#xff0c;AI这个字眼已经被异化成了两个截然不同的定义。媒体和影视作品喜欢把AI描述成已然具备人类般的能力、会导致大量失业甚至会出动机械部队进行…

继续深入更新shell脚本容易出错的地方

一、在shell中用到如果需要输入某些值&#xff0c;需要用到read -p命令 这是我写的猜数字游戏&#xff0c;一开始在输出的时候&#xff0c;屏幕上总会打印输出 "INT" 经过反复的练习才发现 双引号后面应该跟着一个空格&#xff0c;然后在写变量&#xff0c;就不会把…

中国工程院发布2021中国电子信息工程科技发展十四大趋势

来源&#xff1a;人民邮电报1月5日&#xff0c;中国工程院信息与电子工程科技发展战略研究中心发布“中国电子信息工程科技发展十四大趋势&#xff08;2021&#xff09;”。这十四大趋势涵盖信息化、计算机系统与软件、网络与通信、计算机应用、网络安全、集成电路、数据、感知…

AcWing--2.01背包问题

有 NN 件物品和一个容量是 VV 的背包。每件物品只能使用一次。 第 ii 件物品的体积是 vivi&#xff0c;价值是 wiwi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第一行两个整数&#xff…

java实现数组排序代码_Java使用选择排序法对数组排序实现代码

编写程序&#xff0c;实现将输入的字符串转换为一维数组&#xff0c;并使用选择排序法对数组进行排序。思路如下&#xff1a;点击"生成随机数"按钮&#xff0c;创建Random随机数对象&#xff1b;使用JTextArea的setText()方法清空文本域&#xff1b;创建一个整型一维…

ICinsights:中国芯片难达成既定的2025目标

来源&#xff1a;内容由半导体行业观察&#xff08;ID&#xff1a;icbank&#xff09;综合自「ICinsights」&#xff0c;谢谢。据知名分析机构ICinsights报道&#xff0c;在中国的集成电路市场和中国的本土集成电路生产之间应该有一个非常明显的区别。正如IC Insights经常指出的…

2021年5G发展展望

来源&#xff1a;中国电子信息产业发展研究院&#xff08;转载请注明来源&#xff09;编辑&#xff1a; 蒲蒲日前&#xff0c;在2020通信产业大会暨第十五届通信技术年会上&#xff0c;工信部赛迪智库发布了《5G发展2021展望白皮书》。白皮书内容包括对2021年5G形势的基本判断、…

博弈论笔记--03--迭代剔除和中位选民定理

迭代剔除策略:先站在所有人的角度&#xff0c;删除所有的劣势策略&#xff0c;然后重复这个过程。Game One--中间选民定理的例子博弈者&#xff1a;2个Players需要选择自己的政治立场。策略选项&#xff1a;一共有1-10种政治立场&#xff0c;每种都有10%的选民支持。收益:候选者…

喜忧参半:我国蜂窝物联网全球占比超过75%

来源: C114通信网随着连接技术的不断创新&#xff0c;我们将迎来真正万物互联的智能世界。而在物联网产业链条中&#xff0c;通信运营商一直扮演着至关重要的角色。知名物联网市场研究机构IoT Analytics的数据显示&#xff1a;蜂窝物联网连接数方面&#xff0c;中国电信、中国联…

Leetcode--84. 柱状图中最大的矩形

给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 以上是柱状图的示例&#xff0c;其中每个柱子的宽度为 1&#xff0c;给定的高度为 [2,1,5,6,2,3]。 图…