一步一步带你构建第一个 Laravel 项目
参考链接:https://laravel-news.com/your-first-laravel-application
简介
按照以下的步骤,你会创建一个简易的链接分享网站。
安装 Laravel 安装器
composer global require "laravel/installer"
创建项目[1]
laravel new links
检查是否安装成功
访问地址:http://localhost/links/public/ 。看到欢迎页面,表示安装成功。
构建认证系统
执行命令:php artisan make:auth 和 php artisan migrate。[2]
> php artisan make:auth
Authentication scaffolding generated successfully.
> php artisan migrate
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
现在系统里就有注册、登录功能了。
创建 Model & 插入伪数据
创建 Model
创建迁移文件
php artisan make:migration create_links_table --create=links
写迁移文件的 up 方法
Schema::create('links', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('url')->unique();
$table->text('description');
$table->timestamps();
});
执行迁移
php artisan migrate
创建 Link Model
php artisan make:model Link
在 ModelFactory.php 中为 Link Model 定义工厂方法
$factory->define(App\Link::class, function (Faker\Generator $faker) {
return [
'title' => $faker->name,
'url' => $faker->url,
'description' => $faker->paragraph,
];
});
创建种子文件 LinksTableSeeder
php artisan make:seeder LinksTableSeeder
在种子文件中使用工厂方法
public function run()
{
factory(App\Link::class, 10)->create();
}
在 DatabaseSeeder 中注册种子文件
$this->call(LinksTableSeeder::class);
执行种子文件[3]
php artisan db:seed
路由和视图
在 routes/web.php 中添加路由——首页、创建页和保存链接。
use App\Link;
use Illuminate\Http\Request;
Route::group(['prefix' => 'links'], function () {
Route::get('', function () {
$links = Link::all();
return view('links.index', compact('links'));
});
Route::get('create', function () {
return view('links.create');
});
Route::post('store', function(Request $request) {
$validator = Validator::make($request->all(), [
'title' => 'required|max:255',
'url' => 'required|max:255',
'description' => 'nullable|max:255',
]);
if ($validator->fails()) {
return back()
->withInput()
->withErrors($validator);
}
$link = new Link();
$link->title = $request->title;
$link->url = $request->url;
$link->description = $request->description;
$link->save();
return redirect('/links');
});
});
在 resources/views/links 添加两个视图文件。
- 链接分享的首页
index.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading"><h1>Links Sharing</h1></div>
<div class="panel-body">
<div class="row">
@foreach ($links as $link)
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<div class="caption">
<h2><a href="{{ $link->url }}" target="_blank">{{ $link->title }}</a></h3>
<p>{{ $link->description }}</p>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
- 创建链接页
create.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<h1>Submit a link</h1>
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{ url('links/store') }}" method="post">
{{ csrf_field() }}
<div class="form-group">
<label for="title">标题</label>
<input type="text" class="form-control" id="title" name="title" placeholder="Title" value="{{ old('title') }}">
</div>
<div class="form-group">
<label for="url">URL</label>
<input type="text" class="form-control" id="url" name="url" placeholder="URL" value="{{ old('url') }}">
</div>
<div class="form-group">
<label for="description">介绍</label>
<textarea class="form-control" id="description" name="description" placeholder="description">{{ old('description') }}</textarea>
</div>
<button type="submit" class="btn btn-default">创建</button>
</form>
</div>
</div>
@endsection
tags: Laravel 项目
项目数据库名使用
laravel-links,采用utf8mb4_unicode_ci校对。修改 MySQL 配置文件mysql.ini(Windows 环境下) 将default-storage-engine项设置为InnoDB——表示新建数据库表的默认存储引擎使用 InnoDB。 ↩︎对于 Laravel 5.3- 版本,需要修改文件
resource/views/layouts/app.blade.php。将引入的 JavaScript 和 CSS 文件的地址改为<link href="{{ asset('css/app.css') }}" rel="stylesheet">
和<script src="{{ asset('js/app.js') }}"></script>。 ↩︎也可以在迁移时执行种子文件,命令是
php artisan migrate --seed。 ↩︎
一步一步带你构建第一个 Laravel 项目的更多相关文章
- 【简书】在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目
在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目 作者 DonnieZero 关注 2017.07.29 22:02* 字数 2218 阅读 5556评论 3喜欢 1赞赏 1 ...
- 创建一个 Laravel 项目
创建一个 Laravel 项目,首先需要安装 Composer ,如果没有安装的参考 https://docs.phpcomposer.com/00-intro.html 一.安装 Laravel 安 ...
- 构建你人生里的第一个 Laravel 项目
安装 Laravel 安装器 composer global require "laravel/installer" 创建项目 laravel new links 检查是否安装成功 ...
- Gradle入门(3):构建第一个Java项目
Gradle插件通过引入特定领域的约定和任务来构建你的项目.Java插件是Gradle自身装载的一个插件.Java插件提供的基本功能远比源代码编译和打包多.它为你的项目建立了一个标准的项目布局,并确保 ...
- AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)
AgileBoot是笔者在业余时间基于ruoyi改造优化的前后端全栈项目. 关于AgileBoot的详细介绍:https://www.cnblogs.com/valarchie/p/16777336. ...
- 使用maven构建第一个web项目
在eclipse中,正常创建maven项目后,发现在index.jsp中会报错,此时在pom.xml中加入如下依赖关系即可 <dependency> <groupId>java ...
- 完成一个Laravel项目的过程
1.分析项目,找出项目的元素并进行建模(navicat 该工具还可以到处sql语句) 建立关系 2.安装Laravel(使用composer来安装,如果没有的话先安装composer) 3.配置虚拟主 ...
- Eclipse的maven构建一个web项目,以构建SpringMVC项目为例
http://www.cnblogs.com/javaTest/archive/2012/04/28/2589574.html springmvc demo实例教程源代码下载:http://zuida ...
- 推荐一个 Laravel admin 后台管理插件
如何优雅的写代码,我想是每位程序员的心声.自从15年初第一次接触 Laravel 4.2 开始,我就迷上使用 Laravel 框架了.我一直都想找个时间好好写写有关 Laravel 的使用文章,由浅入 ...
随机推荐
- font-face自定义字体使用方法
今天闲的蛋疼小七来聊一聊关于css3的font-face属性的使用方法: 首先应该好多人没用过这个属性,那只能说你们的设计师还是有人性的, 一旦电脑系统没有的特殊字体或者你设计师故意装13为难你就需要 ...
- Pycharm安装工具包
1.在settings->Project Interpreter->configure interpreters->Install中可以找到所有的模块. PyCharm IDE会帮助 ...
- redis1
1. redis持久化有两种方式 ① RDB:就是周期性(比如5s)将内存中的数据放到硬盘 ② AOF:就是增删改操作写入日志,根据日志恢复等 2. redis三种分布式 ①主从 ②哨兵 ③集群 3. ...
- ffmpeg超详细综合教程——摄像头直播
本文的示例将实现:读取PC摄像头视频数据并以RTMP协议发送为直播流.示例包含了1.ffmpeg的libavdevice的使用2.视频解码.编码.推流的基本流程具有较强的综合性.要使用libavdev ...
- java数组遍历 删除remove
package com.b; import java.util.ArrayList; //数组遍历删除,添加 public class Core2 { private String name; pri ...
- 缓存 memcached 与 redis
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- 微信小程序wxss设置样式
微信小程序wxss设置样式 对于以前搞客户端开发的来说,有着客户端的逻辑,就是不知道怎么设置样式,把对应的控件显示出来 一.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 一.视 ...
- Maven整合SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...
- 改变函数中的 this 指向——神奇的call,apply和bind及其应用
在JavaScript 中,call.apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这 ...
- Oracle DATABASE LINK(DBLINK)创建
数据库全局名称可以用以下命令查出: SELECT * FROM GLOBAL_NAME; 修改可以用以下语句来修改参数值: ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALS ...