蛤?周末有比赛?
update-18-05-28:使用seeder时忘了说要把seeder注册到系统内了,现在加上了
上篇我们学习了如何部署laravel项目,那么这篇就介绍一些laravel自带的功能的使用吧
关于上篇的补充
还有一种方法可以开启laravel服务
首先进入项目目录/public
输入以下指令
php -S IP地址:端口号 //注意-S的S要大写,小写会报错
即可和上篇中的指令一样,开启laravel服务
同样的,可以使用nohup php -S IP地址:端口号 &
来后台运行
如果提示端口被占用,首先确定这不是系统预留端口或是被其它你需要的软件占用
然后使用
netstat -ap | grep 端口号
查看占用端口程序的PID,如下面的信息中行末的9295
就是它的PID,而后面的php
则为程序名
tcp 0 0 138.68.253.187:8964 *:* LISTEN 9295/php
tcp 0 0 138.68.253.187:8964 101.75.130.203:54016 ESTABLISHED 9295/php
tcp 0 0 138.68.253.187:8964 101.75.130.203:54208 ESTABLISHED 9295/php
tcp 0 0 138.68.253.187:8964 101.75.130.203:54144 ESTABLISHED 9295/php
然后使用
kill 9295
关闭该程序,9295
换为对应的PID
使用自带的 Auth 系统
开启Auth系统
Laravel内置了一个简单的用户注册登录功能界面,适用于一些不需要复杂地管理用户权限的系统
要激活这个功能,先进入项目目录/
然后输入以下指令
php artisan make:auth
接着首先确认你的laravel服务已经在后台运行或是你现在输入命令开启
然后访问IP地址/端口号/login
,如果看到如下界面,就说明开启成功了
不过到目前为止我们还不能进行注册,因为还没配置mysql
配置数据库
首先请确认安装了mysql
相关教程可以看这里
教程里的yum
相关指令换成apt-get
一般适用
创建数据库
首先进入数据库交互界面
mysql -u root -p
然后输入你的密码
接下来创建一个名为mylaravel
(或是其它名字)的数据库
create database mylaravel; //注意分号
然后更改字符集为utf8mb4
,下面那行命令前的mysql>
表示你需要在mysql交互界面下输入命令,而mysql>
这几个字符不需要输入,以后都是如此
mysql> alter database 数据库名 character set utf8mb4;
完成后输入exit;
或是直接CTRL+Z
退出mysql交互界面
更改.env
配置
进入项目根目录,输入ls -a
查看所有目录下的文件
看看有没有名字叫.env
的文件,如果没有,使用以下指令从样例复制一份
cp .env.example .env
然后编辑这个.env
文件,找到以下这几行
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
根据你的情况修改(一般只用修改后三行)
建表
一般来说我们要自己编写代码或是手动建表
而laravel有个牛逼的数据库迁移功能
进入项目目录,运行以下指令
php artisan migrate
如果没有报错,就完成了建表的工作
接下来,就可以去域名:端口号/register
注册一个用户试试啦~
Eloquent,Migration,Seeder的简单应用
Eloquent是laravel的精髓所在(目前看来).我们要使用的Model类
就继承于Eloquent的Model类,自带了许多好用到爆的函数.
下面就介绍一下如何用Eloquent创建一个名为Test
的Model类,并创建和应用附属的Migration
和Seeder
类.
创建Model类
首先进入项目目录,运行以下指令:
php artisan make:model Test
然后去查看项目目录/app
,你会发现多了一个Test.php
文件.那就是我们刚刚使用Eloquent创建的Model类.
创建Migration和Seeder类
首先我们一口气把这两个类创建好吧
# php artisan make:migration create_tests_table
# php artisan make:seeder TestSeeder
这两句后面的create_tests_table
和TestSeeder
可以随意替换,会在相应目录下生成对应文件名的.php文件,更多的之后再说.
要注意Migration
类的通常命名方式为create_
+项目名的复数形式
+_table
而Seeder
类的通常命名方式为项目名
+Seeder
.
应用刚才创建的类
我们先用migration来创建数据表吧
打开项目目录/migrations/
目录,在里面你可以找到一个以日期
+我也不知道代表什么的的数字
+_create_tests_table.php
的文件,这就是我们刚才创建的Migration类,打开它
将其中的up()
函数修改为以下内容,指定要创建的表的格式:
public function up()
{
Schema::create('tests', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body')->nullable();
$table->integer('user_id');
$table->timestamps();
});
}
然后保存退出.
接着在项目目录下,运行以下指令来创建新的数据表:
artisan migrate
完成后,你可以在mysql窗口中找到一个新创建的tests
表:
root@ubuntu:/home/elatis/Desktop/mylaravel# mysql -u root -p
Enter password:
# 欢迎信息删掉啦
mysql> use mylaravel;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------+
| Tables_in_mylaravel |
+---------------------+
| migrations |
| password_resets |
| tests |
| users |
+---------------------+
4 rows in set (0.00 sec)
mysql>
接下来我们使用Seeder生成假数据
现在先将这个seeder注册到系统内
打开项目目录/database/seeds/DatabaseSeeder.php
,将其中的run
函数修改为:
public function run()
{
$this->call(TestSeeder::class);
}
然后打开项目目录/seeds/
,在该目录下你可以找到一个TestSeeder.php
,这就是我们刚才创建的Seeder类,打开它
将其中的run()
函数改为:
public function run()
{
for($i = 0; $i < 10; ++$i){
\App\Test::create([
'title' => 'Title '.$i,
'body' => 'Body '.$i,
'user_id' => 1,
]);
}
}
然后在项目目录下运行以下命令:
php artisan db:seed
完成后你可以在mysql交互窗口下找到生成的假数据:
mysql> select * from tests;
+----+---------+--------+---------+---------------------+---------------------+
| id | title | body | user_id | created_at | updated_at |
+----+---------+--------+---------+---------------------+---------------------+
| 1 | Title 0 | Body 0 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
| 2 | Title 1 | Body 1 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
| 3 | Title 2 | Body 2 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
| 4 | Title 3 | Body 3 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
| 5 | Title 4 | Body 4 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
| 6 | Title 5 | Body 5 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
| 7 | Title 6 | Body 6 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
| 8 | Title 7 | Body 7 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
| 9 | Title 8 | Body 8 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
| 10 | Title 9 | Body 9 | 1 | 2018-05-21 13:46:14 | 2018-05-21 13:46:14 |
+----+---------+--------+---------+---------------------+---------------------+
10 rows in set (0.00 sec)
mysql>
结束语
这样一次简单的应用eloquent就完成了,本篇笔记就先到此结束吧~
用过原生php才知道有个框架是多么爽QAQ
评论