环境
window10,php5.2.0,mysql5.7.17
开发工具
Sublime Text3,MySQL Workbench,Google chrome 55.0.2883.87 m
搭建环境到第一个表单提交数据,并写入数据库
1. 安装php
2. 安装mysql
直接下载的官网的.zip,解压后需修改一下配置文件,然后就可以直接用啦。
3. 安装MySQL Workbench
一款专为MySQL设计的ER/数据库建模工具
4. 安装Laravel
window有一种方法,直接下载一个压缩包,解压就可以用
参照这篇文章
现在,你可以在浏览器中看到laravel 5,运行起来了,接着,我们去看看目录结构
我们会发现,显示的laravel5是在根目录下resources/views/welcome.lable.php;
<html>
<head>
<title>Laraveltitle>
<style>
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
display: table;
font-weight: 100;
font-family: 'Lato';
}
.container {
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 96px;
}
style>
head>
<body>
<div class="container">
<div class="content">
<div class="title">Laravel 5div>
div>
div>
body>
html>
此时浏览器地址栏的访问地址是:http://localhost:8000/
应用是如何找到这个文件的?我们可以在./app/Http/routes.php中找到答案;
/*
|--------------------------------------------------------------------------
| Routes File
|--------------------------------------------------------------------------
|
| Here is where you will register all of the routes in an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('/', function () {
return view('welcome');
});
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| This route group applies the "web" middleware group to every route
| it contains. The "web" middleware group is defined in your HTTP
| kernel and includes session state, CSRF protection, and more.
|
*/
Route::group(['middleware' => ['web']], function () {
});
5. 运行MySQL
在没有修改任何mysql的文件的情况下:
1.mysqld –install
输出:”service sucessfully installed”
2.net start mysql
输出: “MySQL 服务正在启动”“MySQL 服务无法启动”
这个问题在网上找到很好的解决方法:
修改根目录下my-default.ini文件中的如下两个配置
basedir=C:\mysql-5.7.17-winx64 //mysql的根目录地址
datadir = C:\mysql-5.7.17-winx64\data //根目录下的data文件夹(不用自己手动创建,早期版本好像有data这个文件夹,后来被去掉啦,不过这不碍事)
# These are commonly set, remove the # and set as required.
basedir = C:\mysql-5.7.17-winx64
datadir = C:\mysql-5.7.17-winx64\data
# port = 3306
# server_id = .....
bind-address = 127.0.0.1
3.修改相应文件配置项后,运行mysqld –remove
输出: “service sucessfully removed”
4.mysqld –defaults-file=my-default.ini –initialize-insecure
5.mysqld –install
输出:”service sucessfully installed”
6.net start mysql
输出:”MySQL 服务正在启动”“MySQL 服务已经启动成功”
7.现在是mysql服务开启啦,接下来我们用默认的账号登陆数据库,mysql -u root -p
输出: “Enter password”
密码默认没有,直接回车,就可以登陆成功。
8.现在可以对数据库进行一系列的操作啦。
6. 使用MySQL workbench更好的操作数据库
创建数据库
7. Laravel连接数据库
1. 修改数据库的配置文件./config/database.php,将数据库相应的信息修改成你的数据库的信息。
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'domitory'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
2. 我们来通过一个表单来验证数据库是否连接成功
1.新建在./resources/views/下新建test/login.php
<html>
<head>
<title>login domitorytitle>
head>
<body>
<form method="post" action="/login/create">
<label>用户名:label>
<input type="text" name="name" />
<input type="submit" name="" value="提交">
form>>
body>
html>
2.使用php artisan make:controller UserIndexController 创建一个控制器,运行后在./app/http/下生成UserIndexController.php文件
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class UserInsertController extends Controller
{
public function insertform(){
return view('stud_create');
}
public function insert(Request $request){
$name = $request->input('name');
DB::insert('insert into test (user_name) values(?)',[$name]);
echo "Record inserted successfully.
".$name;
}
}
将UserInsertController类中的内容复制进去。
3.配置路由
Route::get('/login', function () {
return view('test/login');
});
Route::post('login/create','UseraInsertController@insert');
4.感觉都配置好了,好像差不多了,但运行时可能会遇见一个错误
[PDOException]
SQLSTATE[HY000] [1045] Access denied for user ‘homestead’@’localhost’ (using password: YES)
这个问题解决:
修改lavarel中的.evn文件中的DB设置,设置成你自己的数据库信息
DB_HOST=127.0.0.1
DB_DATABASE=domitory
DB_USERNAME=root
DB_PASSWORD=''
运行过程中还会遇见一个问题:
PDOException could not find driver
总结一下OverStack上的解决方法:
找到php安装目录下的php.ini,将里面extension=php_pdo_mysql.dll和extension_dir = “ext”前面的逗号去掉,网上有说去掉php_pdo.dll的逗号,这个文件但在5.2之后的版本被去掉啦,可以忽略。
5.之后运行应该就可以成功啦,但值得注意的一个问题,如果你还不成功,检查应用运行的是什么模式,
Laravel development server started on http://localhost:8000/
此时你就要修改php.ini-development
修改后,记得重启应用。
总结:
搞了一天,关于laravel还有很多没有去尝试,接下来接着去探索。