php laravel框架学习笔记 数据库操作

Posted 此剑之势愈斩愈烈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php laravel框架学习笔记 数据库操作相关的知识,希望对你有一定的参考价值。

 

原博客链接:http://www.cnblogs.com/bitch1319453/p/6810492.html

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框架学习笔记 数据库操作的主要内容,如果未能解决你的问题,请参考以下文章

二十二PHP框架Laravel学习笔记——集合的使用

十八PHP框架Laravel学习笔记——模型的增删改

十六PHP框架Laravel学习笔记——构造器的增删改

十七PHP框架Laravel学习笔记——模型的定义

二PHP框架Laravel学习笔记——路由的定义和控制器

二十四PHP框架Laravel学习笔记——模型的数据集合