php – 如何將 Eloquent 應用在非 Laravel Framework 中
Composer 安裝
composer require illuminate/database
或在 composer.json 寫入並添加你要的版本號
{ "require": { "illuminate/database": "^5.6" } }
建立設定檔
Eloquent/database.php
<?php // 指定 autoload.php 的路徑 require_once dirname(dirname(__FILE__)) . '/vendor/autoload.php'; use Illuminate\Database\Capsule\Manager as DB; $db = new DB; $db->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => '資料表名稱', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); $db->setAsGlobal(); $db->bootEloquent(); return 'Illuminate\Database\Capsule\Manager';
建立資料庫設定檔。在結尾看到 return ‘Illuminate\Database\Capsule\Manager’; 主要由外部替物件重新指定你喜歡的別名。
引用
若在 Joomla! 中使用,記得路徑加上 JPATH_ROOT。這裡使用了 class_alias() 替 Class 指定別名,我的範例使用的別名是 ‘DB’,你可以修改成喜歡的識別名稱。
if (!class_exists('DB')) class_alias(require_once(JPATH_ROOT.'/Eloquent/database.php'), 'DB');
使用範例
下面介紹 CRUD 的寫法吧。其他更多的可以參考 Laravel 的介紹。
一般環境
<?php class_alias(require_once('Eloquent/database.php'), 'DB'); // 查詢 $result = DB::table('dvsmx_blog_articles') ->select(['id', 'title', 'introtext']) ->get(); // print_r($result); // 新增 DB::table('dvsmx_blog_articles') ->insert( [ 'title' => '標題', 'created' => DB::raw('NOW()') ]); echo "最後新增的主鍵:" . DB::getPdo()->lastInsertId() . "<br>"; // 修改 $num = DB::table('dvsmx_blog_articles') ->where('id', '>', 52) ->update( [ 'title' => '標題2' ]); echo "成功修改數量:" . $num . "<br>"; // 刪除 $num = DB::table('dvsmx_blog_articles') ->where('id', '>', 52) ->delete(); echo "成功刪除數量:" . $num . "<br>";
Comments