todos app简单编写(web)
武灵枫 173080175
以下是关于次app的展示截图
软件:PhpStorm 2019.3.2 x64、laragon
下面是创建过程
创建完成后,访问地址http://todos.test/看是否正常
用phpstorm打开工程目录
后面打开终端
下面是控制器中定义的一些方法
class TodoController extends Controller
{public function index(){$todos = Todo::orderByDesc('created_at')->get();return view('todos.index')->with(['todos'=>$todos]);// return view('todos.index');
}public function show(Todo $todo){
// die(var_dump($todoId));// dd($todoId);//$to do =To do::findOrFail($todoId);return view('todos.show' , compact('todo'));
// return $todo;}public function create(){return view('todos.create');}//武灵枫 173080175public function store(Request $request){$request->validate(['name' =>'required|min:3|max:20','desc' =>'required']);$name = $request->get('name');$description = $request->get('desc');$todo = new Todo();$todo->name = $name;$todo->description = $description;$todo->save();return redirect('/todos');}public function edit(Todo $todo){// $todo = Todo::findOrFail($todoId);return view('todos.edit',compact('todo'));}public function update(Todo $todo,Request $request){$request->validate(['name' =>'required|min:3|max:50','desc' =>'required']);$name = $request->get('name');$description = $request->get('desc');// $todo = Todo::findOrFail($todoId);$todo->name = $name;$todo->description = $description;$todo->save();$request->session()->flash('success-info','更新成功!');return redirect("/todos{$todo->id}");}public function destroy(Todo $todo){// $todo = Todo::findOrFail($todoId);try {$todo->delete();}catch (\Exception $e){dd($e);}return redirect('/todos');}//
}
在.env配置文件中更改数据为自己数据库的名称和密码
创建模型
创建迁徙文件
数据库迁徙
创建生成伪数据
创建各类视图
<!doctype html>
<html lang="en">
<head><title>Todos</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" >{{-- <link rel="stylesheet" href="http://stackpath.bootstrapcdn.com/bootstrap/4.3.3/css/bootstrap.min.css">--}}
</head>
<body>
@extends('layouts.app')
@section('title','TODO CREATE')
@section('content')
<div class="container"><div class="row justify-content-center"><div><h1 class="text-center">Todos list</h1><ul class="list-group">@foreach($todos as $todo)<li class="list-group-item">{{$todo->name}}@if($todo->is_completed)<span class=" badge badge-pill badge-success">已完成</span>@else<span class="badge badge-pill badge-danger">未完成</span>@endif<a class="btn btn-primary float-right" href=" /todos/{{$todo->id}}">View</a>{{--<p>{{$todo->description}}</p>--}}<form action="/todos/{{$todo->id}}" method="post"class="d-inline-block float-right mr-2">@method('delete')@csrf<button type="submit" class="btn btn-danger">Delete</button></form></li>@endforeach</ul></div></div>
</div>
@endsection<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
{{--<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>--}}
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</body>
</html>
创建公用布局app.blade.phpapp.blade.phpapp.blade.php
<body>
<nav class="navbar navbar-expand-sm navbar-light bg-light"><a class="navbar-brand" href="/todos">todos app</a><button class="navbar-toggler d-lg-none" type="button" data-toggle="collapse" data-target="#collapsibleNavId"aria-controls="collapsibleNavId"aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggle-icon"></span></button>{{--武灵枫 173080175--}}<div class="collapse navbar-collapse" id="collapsibleNavId"><ul class="navbar-nav mr-auto mt-2 mt-lg-0"><li class="nav-item active"><a class="nav-link" href="/">home<span class="sr-only">(current)</span></a></li><li class="nav-item"><a class="nav-link" href="/todos">Todos</a></li><li class="nav-item"><a class="nav-link" href="/todos/create">create</a></li></ul></div>
</nav>
<div class="container">@if(session()->has('success-info'))<div class="alert alert-success mt-2" role="alert">{{session('success-info')}}</div>@endif@yield('content')
</div><script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
{{--<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>--}}
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</body>
</html>
所有路由设置
Route::get('/', function () {return view('welcome');
});
Route::get('api/users/{user}',function (App\User $user) {return $user->email;
});
/*Route::get('/about', function () {return view('about');
});*/
//Route::get('/about', 'AboutController@index');
Route::get('/todos', 'TodoController@index');
Route::get('todos/create','TodoController@create');
Route::post('/todos','TodoController@store');
Route::get('/todos/{todo}/edit','TodoController@edit');
Route::get('/todos/{todo}','TodoController@show');
Route::put('/todos/{todo}','TodoController@update');
Route::patch('/todos/{todo}','TodoController@update');
Route::delete('/todos/{todo}','TodoController@destroy');
详细页show.blade.php
在控制器update方法中,添加设置flash的代码
todos app简单编写(web)相关推荐
- 独家 | 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)
作者:拉胡尔·阿加瓦尔(Rahul Agarwal), Walmart 实验室的数据科学家 翻译:陈之炎 校对:闫晓雨 本文约4300字,建议阅读10分钟. 本文阐述如何使用StreamLit创建支持 ...
- ipad php mysql_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1
原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...
- ios php mysql实例_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1
原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...
- 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)
作者:拉胡尔·阿加瓦尔(Rahul Agarwal), Walmart 实验室的数据科学家 翻译:陈之炎 校对:闫晓雨 本文约4300字,建议阅读10分钟. 本文阐述如何使用StreamLit创建支 ...
- 如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1
原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...
- 【计算机网络作业】Java UDP聊天 和 Socket编写一个简单的Web服务器
1-1 假设Tom和Jerry利用Java UDP进行聊天,请为他们编写程序.具体如下: (1).Tom和Jerry聊天的双方都应该具有发送端和接收端: (2).利用DatagramSocket与Da ...
- 编写简单的WEB服务器
一.背景 我们都知道使用浏览器访问网址的方法,将网址输入进地址框中就会显示出相应的文字.图片.视频等信息.实际上基于socket的客户/服务器原理是相似的,虽然可能承载信息的载体不同,但其背后的原理是 ...
- 使用node.js作为简单的Web服务器
我想运行一个非常简单的HTTP服务器. 对example.com每个GET请求都应该将index.html提供给它,但是作为常规HTML页面(即,与阅读普通网页时相同的体验). 使用下面的代码,我可以 ...
- [译]使用 Rust 开发一个简单的 Web 应用,第 4 部分 —— CLI 选项解析
原文地址:A Simple Web App in Rust, Part 4 -- CLI Option Parsing 原文作者:Joel's Journal 译文出自:掘金翻译计划 本文永久链接:g ...
- 用Scala实现简单的Web和API服务器
[CSDN 编者按]大家都知道Web和API服务器在互联网中的重要性,在计算机网络方面提供了最基本的界面.本文主要介绍了怎样利用Scala实现实时聊天网站和API服务器,通过本篇文章,你定将受益匪浅. ...
最新文章
- Python基于MASK信息抽取ROI子图并构建基于迁移学习(densenet)的图像分类器实战(原始影像和mask文件都是二维的情况)
- Android数据库--Sqlcipher的使用(一)
- 5万字长文:Stream和Lambda表达式最佳实践-附PDF下载
- syntaxhighlighter 代码高亮 - 插件化
- 注册表操作命令reg
- 19 个 K8S 日常故障处理集锦
- Protel 99se 快捷键
- hp计算机u盘启动,惠普台式机u盘启动(免费分享惠普电脑u盘启动步骤)
- git错误集(updating)
- NoteExpress的使用方法
- 无代码开发的未来是什么样的?
- dcs常用的冗余方式_DCS的冗余
- 《浅谈条形码技术在连锁超市中的应用》论文笔记(二)
- c++简易病毒(附代码)
- 如何在discuz帖子中插入视频
- 英语期刊写作-通往国际学术舞台的阶梯第四章网课答案
- SOME/IP开源库Vsomeip E2E保护实现分析
- JointJS 根据内容调整画布尺寸
- 关于cache miss和prefetch miss的实验
- vi 方向键与退格键解决办法