首页 > 代码库 > php laravel框架学习笔记 (二) 数据库操作
php laravel框架学习笔记 (二) 数据库操作
mysql基本配置
你可用通过配置环境变量,使用cmd进入mysql,当然还有一种东西叫做mysql console
创建一个数据库 create database [数据库名] [选项];
展示已经创建的数据库 show datebases;
在登录后使用 use 语句指定数据库 use 数据库名;
展示表show tables;(需要先指定数据库)
展示表的内容desc [表名];
暂时会这些命令就可以。因为表的创建,删除,版本管理可以通过migration完成
通过tinker管理mysql
为展示基础的增删改查功能,我们先创建一张表。在cmd中输入
php artisan make:migration creat_articles_table --create=articles (php artisan make:migration creat_articles_table --[选项字段表示表的名字])
然后你会发现在migration文件夹下多了一个*_articles_*.php,修改其中的up
public function up() { Schema::create(‘articles‘, function (Blueprint $table) { $table->increments(‘id‘); $table->string(‘title‘); $table->text(‘content‘); $table->timestamp(‘pushed_at‘); $table->timestamps(); }); }
此时并没有同步到数据库。你需要php artisan migrate。
嘛,然后在mysql上面检查一下看看有没有表吧
---
使用这个命令php artisan make:mode article在app文件夹下创建一个article.php用于管理数据库。可以发现之前创建的数据库名字叫articles,但我在article下成功操作了articles数据库。似乎laravel有某种匹配机制可以去找对应的数据库
在php中输入php artisan tinker打开一个类似shell的东西,
1.增
你可以这样操作
$article=new App\Article
$article->title=‘My first Title‘;
$article->content=‘content‘;
$article->published_at=Carbon\Carbon::now();
$article->save();
给字段赋值,然后保存到数据库,嘛增添就做完啦。
2.删
同样也是给出一个示例,where查找所有title字段为空的记录然后全部删掉。这个title是字符串就这样判空。若不是char型可以用null判空
$article=App\article::where(‘title‘,‘=‘,‘)->delete();
3.改
$article=App\article::find(6);
$article->title=‘fuck‘;
$article->save();
找到修改记得保存
4.查
where查或者find查,方法如上?还是甩个链接比较稳官方eloquent文档
嘛,你要是问我在cmd里敲的这样的东西有什么用在代码里改才是真理,其实把cmd里敲的放代码里逻辑一样跑得通
通过提交表单向数据库存入数据
先注册路由
Route::get(‘/article/create‘,‘ArticlesController@create‘); Route::post(‘/article/store‘,‘ArticlesController@store‘);
视图里/article/create创一个create.blade.php,里面写( ps:laravel5.2以上版本要配置form才能用)
@extends(‘app‘) @section(‘content‘) <h1> add new article</h1> {!! Form::open([‘url‘=>‘article/store‘]) !!} <div class="form-group"> {!! Form::label(‘title‘,‘Title:‘) !!} {!! Form::text(‘title‘,null,[‘class‘=>‘form-control‘]) !!} </div> <div class="form-group"> {!! Form::label(‘content‘,‘Content:‘) !!} {!! Form::textarea(‘content‘,null,[‘class‘=>‘form-control‘]) !!} </div> <div class="form-group"> {!! Form::submit(‘post‘,[‘class‘=>‘btn btn-primary form-controller‘]) !!} </div> {!! Form::close() !!} @stop
表单提交到了‘url‘=>‘article/store‘这个东西里,就是把数据交给这个store来存。在ArticlesController写
public function store(Request $request){ $input=$request->all(); $input[‘pushed_at‘]=Carbon::now(); //dd($input); Article::create($input); return redirect(‘/‘); }
存数据库的地方就一行 Article::create($input);
是的create函数放在cmd里也能跑通。因为laravel的默认设置,你只需要在app/article.php里面写(就是上面用命令创的那个东西)
protected $fillable=[‘title‘,‘content‘,‘pushed_at‘];
就能跑通create了
参考资料:https://laravel.com/docs/5.1/eloquent#mass-assignment
php laravel框架学习笔记 (二) 数据库操作