1、數據庫的引入
使用數據庫需要先引入DB類,
use Illuminate\support\Facades\DB;
在.env中配置好用戶名密碼以及數據庫前綴,格式為:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=blog DB_USERNAME=root DB_PASSWORD=root DB_PREFIX=blog_
配置好數據庫信息后,直接使用以下方式查看是否連同數據庫
$pdo = DB:connection()->getPdo(); dd($pdo);
若連通數據庫,則會返回連接的數據信息
2、model的使用
通過artisan命令建立model類,之前已經提到過,並且建立時可以加上路徑,命令如下
php artisan make:model User
這樣便生成User模型,引用數據庫時,只需要飲用此模型就可以使用
use App\Http\Model\User;
function index(){
$data = User::where('')->orderBy('id','desc')->paginate(5);
}
介紹幾個常用的查詢功能
orderBy(‘id’,‘desc’)//排序要注意‘B’大寫,此外正序和倒序為第二個參數 where(‘id’,‘>’,2) //如果條件是等於的話,可以不寫第二個參數 get() //查詢給出條件的數據 all() //查詢所有的數據 join(‘表二’,‘條件’,‘=’,‘條件’) //用於多表查詢 increment($view) //自增,每次調用給出的字段自動1 first() //查詢第一條數據 pluck()->all() //對取出的字段進行過濾 take()->get() //取出幾條數據 paginate() //分頁 后可通過 $data->links() 輸出上下頁
3、出現問題及解決辦法
①、通過model訪問user表時,總是報錯不存在users表,而自己明明創建的是user表,原因是laravel創作者是老外,他們認為這種表就應該是復數,所以自動加載了users表,解決辦法是
在model中添加表明表名的變量, pretexted $table = 'user';
②、使用find()方法查詢一條數據時 ,總是報錯不存在id,而自己創建的是user_id,原因同上,也是laravel自動認為主鍵為id字段,需要作出調整,也是在model中添加表明主鍵的變量:
protected $primaryKey = 'user_id';需要注意的是 K 要大寫;
③、更新數據時報錯,不存在update_at這一個字段,也是laravel自動添加,用於記錄每一條數據的更新時間。解決辦法,添加公共變量,把默認給關閉 public $timestamps = false;即可
4、數據庫遷移及數據填充
①創建數據表,執行以下命令
php artisan make:migration create_user_table
操作之后會在database/migrations/目錄下生成創建表文件,其中包含兩個方法up()創建和down()刪除,添加方法如下:
//創建表 public function up() { Schema::create('user', function (Blueprint $table) { $table->engine = "MyISAM"; //注意這里是一個變量 $table->increments('user_id'); $table->string('user_name')->default('')->comment('//名稱'); $table->integer('user_order')->default('0')->comment('//排序'); }); } //刪除表 public function down() { Schema::dropIfExists('user'); }
在寫完需要創建的字段后,執行以下命令,建立數據表。注意,在創建一張表的時候需要將其他的表文件移出文件夾,否則其他表也會同時運行一遍
php artisan migrae
②、數據填充
php artisan make:seeder userTableSeeder
操作以上命令database/seeder/目錄下生成UserTableSeeder.php,包含了一個方法,run()添加數據方法,寫法如下:
public function run() { $data = [ [ 'link_name' => 'laravel', 'link_title' => 'blog 開發', 'link_url' => 'https://www.cnblogs.com/yaradish/p/9445583.html', 'link_order' =>1 ], [ 'link_name' => 'laravel', 'link_title' => 'blog 開發', 'link_url' => 'https://www.cnblogs.com/yaradish/p/9445583.html', 'link_order' =>2 ], ]; DB::table('links')->insert($data); }
再完成數據填寫后,要強調的是,需要先進入同目錄DatabaseSeeder.php(源文件)中,打開要添加的數據,然后執行以下命令
php artisan db:seed
查看數據庫便可看到自己添加的數據了,是不是很方便