2016年8月28日 星期日

Laravel 新手等級學習筆記(三) 資料庫連結

Laravel 5.2有個資料庫遷移檔的功能

好像是為了能夠版本控管 可以一指還原

還會多加一個時間戳記(可取消)

這裡就不先討論

先使用phpmyadmin 建立一個資料庫 testdbs

後面要多加一個s 後面會說明

再建立一個testtbs的資料表

按照慣例取個 id  主鍵  increments 是唯一值的遞增數字

再來個 name 資料型態︰字元

並手動新增二筆資料 已備後續程式測試用

編輯資料庫設定

如果是用xampp預設模式的話  資料庫的帳號是root  沒有密碼

所以要改一個是根目錄底下的  .env 檔案
DB_DATABASE=testdb

DB_USERNAME=root


一個是在 config/database.php

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'testview'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],


建立模組

在根目錄任何地方  建一個Models的目錄

這邊是建立在 app\底下  M最好要大寫

在app\Models 底下 建立一個Testtb.php的檔案

namespace App\Models;
use Illuminate\Database\Eloquent\Model;

class Testtb extends Model
{
protected $table = "testtbs";
}


前面兩行一定要  路徑要設對

app\Models 是之前自己設定的路徑唷!!!

檔名Testdb.php、class的名稱  都要設成一樣

Laravel會自動去抓 開頭小寫  後面加s的資料表

所以 class Testtb 就對應資料表testdbs

資料讀取

打開 app\Http\routes.php

新增另一行

Route::get('/testdata','TestbaseController@printdata');

由上得知 這邊取名方式不一定要全部一樣

養成良好習慣 程式擺放的檔案名稱記得後面加Controller

新增TestbaseController.php的檔案

打上

namespace App\Http\Controllers;
use App\Models\Testtb;

class TestbaseController extends Controller
{
     public function printdata() {
          $test = new Testtb;
          $test = Testtb::all();
          foreach ($test as $te) {
                echo $te->name;
          }
     }
}


use App\Models\Testtb;  就是剛剛建立的Models

$test = new Testtb;   新建類別

$test = Testtb::all();  讀取所有資料

foreach ($test as $te)  把資料表裡的資料 一筆一筆讀出來

echo $te->name;    列印出來

這樣就完成 資料庫連結及讀取資料






資料來源

沒有留言: