پس از مراحل نصب و راه اندازی و تنظیمات فریم ورک لاراول
نوبت به اتصال پروژه به دیتابیس می رسد، برای این کار:
در فولدر config فایل database.php را باز کنید:
در این فایل بسته به دیتابیسی که مورد نظرتون هست می توانید تنظیمات آن را ست نمایید :
فریم ورک لاراول از دیتابیس های mysql ,pgsql,redis ,SQL Server . پشتیبانی می کند.
به عنوان مثال دیتابیسی که بنده استفاده می کنم mysql هست که در قسمت تنظیمات این دیتابیس من به صورت زیر عمل کرده ام
[php] 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'laravelproject'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', '123456789'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, ], [/php]
این تنظیمات اولیه دیتابیس بود در بخش های بعدی با کوئری زدن و relation ها و همچنین کار با Eloquent ORM حتما آشنا خواهیم شد.
لینک زیر داکیومنت سایت اصلی در رابطه با دیتابیس هست:
Database: Getting Started
نکته:پس از تنظیم کردن اطلاعات دیتابیس خود ، در صورتی که با عدم اتصال به دیتابیس مواجه شدید. اطلاعات خود را در فایل .env نیز تنظیم کنید.
در پست قبلی نصب و راه اندازی پروژه در فریم ورک لاراول Laravel
در انتهای متن ما لینک نمایش سایت را قرار دادیم
نکته۱:پس از نصب و فعال کردن فریم ورک لاراول (در سرور یا لوکال) باید روت root
اصلی سرورتون رو به فایل index.php واقع در فولدر public قرار دهید.
نکته۲: فولدر های storage , bootstrap/cache باید قابل نوشتن باشند (writable) ،
پس فراموش نکنید که permission (سطح دسترسی ) را در سرورتون برای این فولدر ها اعمال کنید.
نکته۳: برای سایر تنظیمات می توانید به فولدر config رفته و فایل app.php را مشاهده کنید.
در این قسمت می توانید تنظیمات نظیر timezone و language را تنظیم نمایید.
assign نقش به کاربر در RBAC – Yii2
برای اهدای سطح دسترسی به کاربر مثلا به هنگام ثبت نام
شما می توانید با استفاده از متد getRole نقش مد نظر خود را انتخاب و به کاربر مورد نظر assign کنید.
|
$auth = \Yii:: $app ->authManager; $authorRole = $auth ->getRole( 'author' ); $auth ->assign( $authorRole , $user ->getId()); |
در فریم ورک yii2 نسخه advanced به صورت پیش فرض مدل user وجود دارد
که در فولدر common و در قسمت models قرار داده شده است.
زمانی که شما پروژه ای را اجرا می کنید (نسخه advance ) امکاناتی نظیر لاگین , لاگ اوت ، ثبت نام و فراموشی رمز عبور به صورت پیش فرض در frontend و در siteController وجود دارد
table user در دیتابیس مرتبط با امکانات بالا در فولدر migration واقع در فولدر console قرار دارد که به شرح زیر می باشد :
db->driverName === 'mysql') {
// http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci
$tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';
}
$this->createTable('{{%user}}', [
'id' => $this->primaryKey(),
'username' => $this->string()->notNull()->unique(),
'auth_key' => $this->string(32)->notNull(),
'password_hash' => $this->string()->notNull(),
'password_reset_token' => $this->string()->unique(),
'email' => $this->string()->notNull()->unique(),
'status' => $this->smallInteger()->notNull()->defaultValue(10),
'created_at' => $this->integer()->notNull(),
'updated_at' => $this->integer()->notNull(),
], $tableOptions);
}
public function down()
{
$this->dropTable('{{%user}}');
}
}
توجه : در رابطه با migration ها در اینجا توضیح داده شده است .
در صورتی که نیاز به تغییر اطلاعات بالا داشتید می توانید آن را تغییر دهید .
برای اجرای کد بالا و پیاده سازی در دیتابیس (ایجاد جدول user) باید در cmd خود کد زیر را اجرا نمایید :
yii migrate --migrationTable=migrations
در این مطلب از سایت goyii.ir نحوه ی اتصال پروژه به دیتابیس را آموزش می دهیم:
برای اتصال پروژه به دیتابیس با توجه به نوع پروژه basic یا advanced به روش زیر عمل می کنیم
برای پروژه های basic
در مسیر :
اطلاعات دیتابیس خود را در فایب db.php وارد نمایید
در پروژه های advanded
مسیر:
اطلاعات دیتابیس خود را در فایبmain-local.php وارد نمایید
در این مطلب از سایت goyii.ir نحوه ی اتصال پروژه به دیتابیس را آموزش می دهیم:
برای اتصال پروژه به دیتابیس با توجه به نوع پروژه basic یا advanced به روش زیر عمل می کنیم
برای پروژه های basic
در مسیر :
root/config/db.php
اطلاعات دیتابیس خود را در فایب db.php وارد نمایید
return [
\'class\' => \'yii\\db\\Connection\',
\'dsn\' => \'mysql:host=localhost;dbname=tebshahr\',
\'username\' => \'root\',
\'password\' => \'123456789\',
\'charset\' => \'utf8\',
];
در پروژه های advanded
مسیر:
root/common/config/main-local.php
اطلاعات دیتابیس خود را در فایبmain-local.php وارد نمایید
return [
\'components\' => [
\'db\' => [
\'class\' => \'yii\\db\\Connection\',
\'dsn\' => \'mysql:host=localhost;dbname=bge\',
\'username\' => \'root\',
\'password\' => \'123456789\',
\'charset\' => \'utf8\',
],
\'mailer\' => [
\'class\' => \'yii\\swiftmailer\\Mailer\',
\'viewPath\' => \'@common/mail\',
// send all mails to a file by default. You have to set
// \'useFileTransport\' to false and configure a transport
// for the mailer to send real emails.
\'useFileTransport\' => true,
],
],
];
فریم ورک Yii با استفاده از request امکان دسترسی به پارامتر های ارسالی را برای برنامه نویسان فراهم کرده .
با استفاده از این قابلیت شما می توانید به پارامترهای ارسالی کاربر نظیر post – get , … دسترسی داشته باشین.
یکی از مهمترین آنها ip کاربر می باشد :
برای دریافت ip کاربر به روش زیر عمل می کنیم
ممکنه که شما در پروژه ی خودتون نیاز به نسخه فریم ورک Yii2 داشته باشید.
برای دریافت ورژن به دو روش می توانیم عمل کنیم»
استفاده از command line
به فولدر root پروژه بروید . (همانجا که فایل yii وجود دارد) با اجرا گرفتن کد زیر در cmd ورژن فریم ورک نمایش داده می شود
استفاده از Yii API
با استفاده تابع زیر نسخه فریم ورک نمایش داده می شود
در gmail و سایر سرویس های ایمیل معتبر امکان پاسخ دادن به ایمیل های دریافتی به صورت اتوماتیک وجود دارد که به آن auto reply می گویند.در این آموزش نحوه ی فعال سازی این امکان در gmail را قرار داده ایم. کافی است مراحل زیر را به ترتیب انجام بدید.
مثال: می خواهیم یک اکشن در controller ایجاد کنیم و از طریق آن یک دیتایی را به ویو ارسال و آن را نمایش دهیم :
مرحله اول : ایجاد اکشن index در کنترلر article
برای ایجاد کنترلر: فایل ArticleControoler.php را در مسیر app->http->controllers ایجاد می کنیم:
[php] namespace App\Http\Controllers; use App\Article; use Illuminate\Http\Request; use View; use App\Http\Requests; class ArticleController extends Controller { public function index(Request $request) { return view('article.index', [ 'title' => "goyii.ir", ]); } } [/php]
در کد بالا و در اکشن index ما دیتای goyii.ir را از طریق متغییر title به فایل index.blad.php ارسال می کنیم. که با $title در ویو می توانیم آن را دریافت کنیم.
مرحله دوم:برای نمایش باید ابتدا فولدر article را در مسیر resources->views ایجاد و در آن فایل فایل index.blade.php قرار دهیم:
فایل index.blade.php حاوی کد زیر :
[php] <h1> welcome to echo $title; </h1> [/php]
مرحله سوم : تنظیم routes :
کد زیر را در فایل web.php در فولدر Routes
[php] Route::get('/article/index', 'ArticleController@index'); [/php]
در کد بالا هرگاه کاربر در مرورگر خود article/index را وارد نماید سیستم اکشن index در کنترلر article اجرا می کند.
درباره این سایت