首页 > 代码库 > php laravel框架学习笔记 (二) 数据库操作

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框架学习笔记 (二) 数据库操作