将心比心,方得人心~

laravel 数据库操作

周洲 2017-04-06 21:28:23


方式1:通过DB类操作数据库

测试数据库是否连接成功

<?php
namespace App\Http\Controllers\Home;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;

class IndexController extends Controller {
    public function index()
    {
        $pdo = DB::connection()->getPdo();
        dd($pdo);
    }
}

获取user表所有数据

public function index()
{
	$users = DB::table('user')->get();
	dd($users);
}


获取user表id等于1的数据

public function index()
{
    $users = DB::table('user')->where('user_id', 1)->get();
    dd($users);
}

获取user表id大于1的数据

public function index()
{
	$users = DB::table('user')->where('user_id','>', 1)->get();
	dd($users);
}


方式2:通过模型操作数据库

artisan新建模型:php artisan make:model User

模型最好放在专门的文件夹下面在Http文件夹下面新建Model文件夹存放模型

获取user表中id等于1的数据

控制器中:

<?php
namespace App\Http\Controllers\Home;

use App\Http\Controllers\Controller;
use App\Http\Model\User;

class IndexController extends Controller {
    public function index()
    {
        $user = User::where('user_id', 1)->get();
        dd($user);
    }
}

模型中需要设置表名:

<?php
namespace App\Http\Model;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table = "user";
}

通过find()方式获取id等于1的数据

控制器中:

<?php
namespace App\Http\Controllers\Home;

use App\Http\Controllers\Controller;
use App\Http\Model\User;

class IndexController extends Controller {
    public function index()
    {
        $user = User::find(1);
        dd($user);
    }
}

模型中需要设置主键:

<?php
namespace App\Http\Model;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table = "user";
    protected $primaryKey = 'user_id';
}

修改数据

控制器中:

<?php
namespace App\Http\Controllers\Home;

use App\Http\Controllers\Controller;
use App\Http\Model\User;

class IndexController extends Controller {
    public function index()
    {
        $user = User::find(1);
        $user->user_name = '张三';
        $user->update();    //这里save()方法也可以起到修改作用
    }
}

模型中:

<?php
namespace App\Http\Model;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table = "user";
    protected $primaryKey = 'user_id';
    public $timestamps = false;
}

PS:

laravel在修改和新增数据的时候分别会添加一个updated_at和created_at字段,记录数据更新时间,导致报错。

解决办法1:

在数据库里添加updated_at和created_at字段。

解决办法2就是上面模型中的解决办法:

在模型里禁用时间设置

public $timestamps = false;





打赏

『微信打赏』

Tag标签laravel 

我是有底线的