zoukankan      html  css  js  c++  java
  • 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 AppArticle

    $article->title='My first Title';

    $article->content='content';

    $article->published_at=CarbonCarbon::now();

    $article->save();

    给字段赋值,然后保存到数据库,嘛增添就做完啦。

    2.删

    同样也是给出一个示例,where查找所有title字段为空的记录然后全部删掉。这个title是字符串就这样判空。若不是char型可以用null判空

    $article=Apparticle::where('title','=',')->delete();

    3.改

    $article=Apparticle::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

  • 相关阅读:
    不依赖OFFICE组件实现带图片的EXCEL导出
    关于安装SQL的错误
    Web开发学习点滴(持续更新)
    窗体间传值汇总
    沈阳.NET俱乐部MSN群开张了。。。
    VoIP协议标准浅析
    名词解释
    创建和运行一个解决方案
    400电话为什么叫免费电话?
    XPO基础简化的属性语法:
  • 原文地址:https://www.cnblogs.com/bitch1319453/p/6810492.html
Copyright © 2011-2022 走看看