继续昨天的project,今天我们要连接数据库了
我使用的是mamp,直接运行,mysql默认端口是8889。确认这点之后我们继续。
现在在mysql 中创建一个dababase,在里面创建一个table
现在,创建一个model,在terminal中输入
php artisan make:model Message -m
在app文件夹中,就会生成这个文件
这里需要注意,model直接挂钩migration,也就是database里面的参数
在migration中,就会发现一个有up和down的文件,up 意味着写入的条件,down意味着拿到的东西
public function up()
{
Schema::create('messages', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email');
$table->mediumText('message');
$table->timestamps();
});
}
******************************************* 这个分割线 *******************************************
现在开始配置database的文件
在 .env 文件中,开始配置, 下面是我的配置
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
配置结束之后一定要输入,这样直接就可以在database中创建出一个table
php artisan migrate
来对关于database的配置文件进行更新,
******************************************* 这个分割线 *******************************************
现在,尝试让message controller 和 database可以直接进行互动
在message controller 中导入
use App\Message;
现在我们修改之前的submit的functions
创建,获取信息,储存message,最后redirect
public function submit(Request $request){
$this->validate($request, ['username'=>'required', 'email'=>'required']);
$message = new Message;
$message->name = $request->input('username');
$message->email = $request->input('email');
$message->message = $request->input('message');
$message->save();
return redirect('/');
}
******************************************* 这个分割线 *******************************************
redirect之后还发一个信息
这个地方是很有趣的,首先在laravel中有一个东西叫做session,也是全域,和之前说的error差不多。
return redirect('/')->with('success', 'this is message for the session');
之后我们可以在全域里面寻找session
@if(session('success'))
<div class="alert alert-success">
{{session('success')}}
</div>
这里,我们应该完全可以自己将数据放到database里面了
******************************************* 这个分割线 *******************************************
今天遇到了一些问题,所以在整理的时候还是比较困难的,毕竟以前几乎没有接触过php
比如model生成了之后,直接就会生成migration,migration文件直接就对接database立面table与table细节的问题。
网友评论