php laravel框架学习笔记 数据库操作
Posted 此剑之势愈斩愈烈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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框架学习笔记 数据库操作的主要内容,如果未能解决你的问题,请参考以下文章