پس از مراحل نصب و راه اندازی و تنظیمات فریم ورک لاراول
نوبت به اتصال پروژه به دیتابیس می رسد، برای این کار:
در فولدر 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 اجرا می کند.
آشنایی با MVC در laravel
در این قسمت در باره نحوه کار MVC در laravel صحبت می کنیم .
برای تعریف MVC می توانید به لینک رو به رو مراجعه کنید. تعریف MVC
بخش اول : Model
برای ایجاد مدل به دو روش می توانید عمل کنید:
۱ . به صورت دستی در فولدر app یک کلاس با نام دلخواه ایجاد کنید :
مثال: ایجاد مدل با نام article در فولدر app پروژه با نام Article.php
[php] namespace App; use Illuminate\Database\Eloquent\Model; class Article extends Model { // } [/php]
۲ . از طریق دستورات artisan
در این روش کافی است که cmd را در روت پروژه باز کنید و دستور زیر را تایپ نمایید:
[php] php artisan make:model Article [/php]
با اجرای دستور پیام Model created successfully. نمایش داده می شود :
و در فولدر app همانند روش اول فایل Article.php ایجاد می شود .
برای مشخص کردن جدول دیتابیس مدل ایجاد شده می توانید پروپرتی table را با نام مورد نظرتون تنظیم نمایید.
[php] namespace App; use Illuminate\Database\Eloquent\Model; class Article extends Model { protected $table = "article"; // } [/php]
نکته: زمانی که مدل را ایجاد می کنید فریم ورک به صورت پیش فرض پروپرتی table را برابر با نام مدل قرار می دهد با این تفاوت که:
مثلا برای مدل article نام جدول را برابر با articles قرار می دهد.
یعنی باید جدول articles در دیتابیس داشته باشید.
بخش دوم: Controller
برای ایجاد کنترلر به دو روش می توانید عمل کنید:
۱ . به صورت دستی در فولدر Http (این فولدر در فولدر app قرار دارد) و در داخل فولدر Controller یک کلاس با نام دلخواه ایجاد کنید :
مثال: ایجاد کنترلربا نام article در فولدر Controller واقع در فولدر Http با نام ArticleController.php
[php] namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; class ArticleController extends Controller { // } [/php]
۲ . از طریق دستورات artisan
در این روش کافی است که cmd را در روت پروژه باز کنید و دستور زیر را تایپ نمایید:
[php] php artisan make:controller ArticleController [/php]
با اجرای دستور پیام Controller created successfully.نمایش داده می شود :
و در فولدر Controller همانند روش اول فایل ArticleController.php ایجاد می شود .
بخش سوم: View
این بخش وظیفه نمایش اطلاعات را دارد
اطلاعاتی که از طریق مدل و کنترل به view ارسال می شود .
آشنایی با MVC در laravel
هر مدلی که ایجاد می کنید باید یک فولدر با نام مودلتون درداخل فولدر views ( فولدر resources ( واقع در روت سایت))داشته باشید.
برای مثال فولدر article در مسیر زیر قرار دارد:
[php] resources/views/article [/php]
که در این فولدر فایل های نمایش خود را قرار می دهید :
برای مثال index.blad.php
نکته: هر فایل ویو باید blade.php داشته باشد .از استانداردها و قوانین فریم ورک laravel می باشد .
همانطور که در آموزش "نحوه ی نمایش view به وسیله controller " دید ، نمایش اطلاعات بدون قالب خاصی بود.
البته ما می توانستیم به وسیله ی یک سری تگ های html کمی ظاهر سایت را تغییر دهیم.
در این قسمت اندکی با دستورات blade در لاراول آشنا میشیم
سپس برای پروژه ی خود یک قالب تعریف می کنیم که در سایر صفحات و view های ما نمایش داده شود.
Blade یک موتور ساده و در عین حال قدرتمند ایجاد قالب است که همراه لاراول ارائه می شود.
تمامی قالبهای Blade باید از پسوند blade.php. استفاده کنند. (نکته ای که قبلا گفته شده است).
منبع http://larabook.ir
بهترین ویژگی Blade این است که از یک طرح (layout) برای همه صفحات وب برنامه می شود استفاده کرد.
به عنوان مثال، می توانید یک منو اصلی در یک layout مادر ایجاد کنید و از آن برای تمام صفحات خود استفاده کنید.
منبع http://baboon.ir
برای ایجاد قالب مادرمون (masterpage) ابتدا باید فولدر layouts را ایجاد کنیم.کجا؟
مثل نمایش view ها این فولدر هم در فولدر views واقع در فولدر resources ایجاد می شود.
در مرحله بعد فایل master.blade.php ایجاد می کنیم.
همانند سایر قالب ها در این فایل کد های html را قرار می دهیم .
[php] <!DOCTYPE html> <html> <head> <title>Page Title</title> </head> <body> <h1>This is a Heading</h1> <p>This is a paragraph.</p> </body> </html> [/php]
تا اینجا که کار خاصی نکردیم و فقط تگ های html قرار دادیم.
مرحله بعدی قرار دادن placeholder هست.
placehoder به چه معناست؟
خیلی ساده شما محلی را در قالب مشخص می کنید که این محل ، محل نمایش محتوای سایر ویو ها است.
برای ایجاد placeholder به روش های زیر می توانیم عمل کنیم:
در مثال بالا ما می خواهیم در تگ p یک placeholder ایجاد کنیم. تا اطلاعات سایر صفحات در آن نمایش داده شود :
فایل master.blade.php را با کد های زیر تغییر میدهیم:
[php] <!DOCTYPE html> <html> <head> <title>Page Title</title> </head> <body> <h1> @yield('title')</h1> <p> @yield('content')</p> </body> </html> [/php]
با استفاده از @yield ما placeholder ایجاد کردیم. محتوای داخل پرانتز نام placeholder ماست که با استفاده از آن در ویو ها به آن دسترسی پیدا می کنیم.
حالا در فایل index.blade.php که قبلا تعریف کردیم از این مسترپیج masterpage استفاده می کنیم و محتوای خود را نمایش می دهیم
فایل index.blade.php واقع در resources/views/article را با کد های زیر تکمیل می کنیم
[php] @extends('layouts.master') @section('title') golaravel.ir @stop @section('content') آموزش فریم ورک laravel @stop [/php]
/***********************/
با استفاده از @extends('layouts.master') قالب خود را صدا زدیم
[php] با استفاده از @section('title') golaravel.ir @stop [/php]
در تگ h1 خود متن" golaravel.ir "را قرار دادیم
[php] و با استفاده از @section('content') آموزش فریم ورک laravel @stop [/php]
در تگ p متن " آموزش فریم ورک laravel " را قرار دادیم
یکی از راه های مفید در سرعت پردازش سایت و همچنین سئو استفاده از minify و compress کردن فایل های css و javascript هست .
برای این کار روش های متنوعی وجود داره که یکی از مفید ترینشون که من استفاده کردم
استفاده از ویجتی Yii 2 Minify View Component می باشد
برای استفاده از این ماژول ابتدا به وسیله ی composer آن را در اپلیکیشن خود نصب کنید:
[php] composer require \"rmrevin/yii2-minify-view:~1.13\" [/php]
یا قرار دادن کد زیر در فایل composer.json در رووت سایت (در قسمت require)
[php] \"rmrevin/yii2-minify-view\": \"~1.13\", [/php]
برای اعمال تنظیمات
کد زیر را در components در main.php یا web.php در فولدر config قرار دهید :
[php] \'view\' => [ \'class\' => \'\\rmrevin\\yii\\minify\\View\', \'enableMinify\' => !YII_DEBUG, \'concatCss\' => true, // concatenate css \'minifyCss\' => true, // minificate css \'concatJs\' => true, // concatenate js \'minifyJs\' => true, // minificate js \'minifyOutput\' => true, // minificate result html page \'web_path\' => \'@web\', // path alias to web base \'base_path\' => \'@webroot\', // path alias to web base \'minify_path\' => \'@webroot/minify\', // path alias to save minify result \'js_position\' => [ \\yii\\web\\View::POS_END ], // positions of js files to be minified \'force_charset\' => \'UTF-8\', // charset forcibly assign, otherwise will use all of the files found charset \'expand_imports\' => true, // whether to change @import on content \'compress_options\' => [\'extra\' => true], // options for compress \'excludeBundles\' => [ \\dev\\hellowrld\\AssetBundle::class, // exclude this bundle from minification ], ] [/php]
با اجرای اپلیکیشن در فولدر web فولدری با نام minify ایجاد می شود که برای css ها فایلی جداگانه و برای js ها نیز فایلی جداگانه ایجاد می کند .
blade یک موتور قدرتمند برای قالب در لاراول فراهم میکند.
بر خلاف سایر قالب های php شما را ر استفاده از کد های php در ویو محدود نمی کند.
در واقع کلیه کد های blade در کدهای php کامپایل و به صورت کش ذخیره می شوند(تا زمانی که تغییر کنند.)
فایل های blade در فولدر resources/views ذخیره می شوند و دارای پسوند .blade.php هستند.
دوتا ویژگی اصلی blade استفاده از inheritance و section هست.
inheritance رو در مطلب "کار با قالب layout در لاراول " آموزش دادیم.
به طور کلی به این معناست که شما می توانید یک قالب مادر داشته باشین(مسترپیج masterpage)
و سایر صفحاتتون از این قالب ارث ببرند.
در مورد sections اشاره ی کوچکی در لینک فوق داده شد . به این معنی است که:
شما می توانید در قالب های مستر بخش هایی را ایجاد کنید و با توجه به نیاز اون قسمت های را در سایر صفحات و با اطلاعات دلخواه پر نمایید(نمایش دهید)
آشنایی با directives (دستورالعمل ها)
به @section و @yield دستورالعمل (directives ) گفته می شود.
به کد زیر را توجه کنید:
[php] <!-- Stored in resources/views/layouts/masterpage.blade.php --> <html> <head> <title>نام سایت - @yield('title')</title> </head> <body> @section('sidebar') ساید بار مستر پیج @show <div class="container"> @yield('content') </div> </body> </html> [/php]
دستور section یک قسمت از محتوا را تعریف می کند.
دستور yield برای نمایش محتویات بخش خاص استفاده می شود.
[php] <!-- Stored in resources/views/article.blade.php --> @extends('layouts.masterpage') @section('title', 'عنوان دلخواه') @section('sidebar') @parent <p>ساید بار مثلا محل قرار گیری تبلیغات</p> @endsection @section('content') <p>محتوای سایت مثلا محل قرارگیری لیست مقالات .</p> @endsection [/php]
به وسیله دستور extends ما مستر پیج را صدا میزنیم.: چون در فولدر layouts قرار دارد نام فولدر را قبل آن مینویسیم
به وسیله دستور section('title', 'عنوان دلخواه') دستور yield('title') در مسترپیج را مقدار دهی می کنیم.
همچنین می توانیم این مورد را به این شکل مقدار دهی کنیم:
[php] @section('title') عنوان دلخواه @endsection [/php]
در دستور section('sidebar') که با endsection به پایان می رسد : محتوای دلخواه را نمایش می دهیم
تنها نکته این است که در صورتی که از دستور parent استفاده کنیم مقداری که در مسترپیج قرار داده شده را نیز نمایش می دهد
در صورتی که استفاده نکنیم آن را نمایش نمی دهد.
نکته ای که در تعریف section در مستر پیج و ویو داریم این است که
زمانی که شما از دستور show استفاده می کنید دستور show یک بخش را تعریف و بلافاصله آن را اجرا می کند.
و هنگامی که شما از endsection استفاده می کنید تنها یک بخش را تعریف می کند.
صفرتا صد پروژه فریم ورک لاراول laravel
checkAccess in Yii2 RBAC برای بررسی میزان دسترسی کاربر جاری به یک نقش (RoleName) یا یک مجوز (Permission) از دستور زیر استفاده می کردیم: [php] Yii::$app->user->can("admin") [/php] در صورتی که بخواهیم میزان دسترسی یک کاربر مشخص به یک نقش یا مجوز خاص را بررسی کنیم از دستور checkaccess استفاده می کنیم شکل کلی این دستور به این صورت می باشد: [php] Yii::$app->authManager->checkAccess($userid, 'roleOrPermission') [/php] خروجی این کد در صورتی که کاربر دسترسی داشته باشد true یا۱ می باشد. امادر صورت عدم دسترسی مقداری بازگردانده نمیشود
دستورات artisan در laravel
[php] php artisan key:generate [/php] پس از اجرا فایل .env در رووت پروژه ایجاد می شود (این فایل را در file explorer باز کنید)
[php] php artisan --version [/php]
[php] php artisan make:model Article [/php] پس از اجرا در فولدر app مدل ایجاد می شود : Article.php
[php] php artisan make:controller ArticleController [/php] پس از اجرا در فولدر controller که در فولدر http قرار دارد فایل ArticleController.php ایجاد می شود . فولدر http در فولدر app قرار دارد.
[php] php artisan make:controller PhotoController --resource [/php]
[php] php artisan make:controller PhotoController --resource --model=Photo [/php]
[php] php artisan make:auth [/php]
[php] php artisan migrate [/php]
نمایش دیتا در لاراول
جهت نمایش داده ها در فایل های blade از طریق ارسال دیتا از کنترلر به ویو در اینجا توضیح دادیم شما در route نیز می توانید داده را به ویو ارسال نمایید : در route [php] Route::get('greeting', function () { return view('/article/index', ['name' => 'golaravel.ir']); }); [/php] و در ویو [php] salam , {{ $name }}. [/php]
کامپوننت ها و اسلات ها در لاراول تقریبا شبیه به section ها و layout ها هستند . در مستندات فریم ورک گفته شده که این مفاهیم راحت تر قابل فهم هست. برای مثال : برای هشدار به کاربر یا همان alert ها , به جای اینکه هر دفعه کد تکراری بنویسیم آن را به صورت یک component در ویو ایجاد می کنیم و در جای مد نظر آن را صدا میزنیم محل تعریف این کامپوننت ها در فولدر views قرار می گیرد (resources->views) برای مثال من در این فولدر یکفایل php با نام alert.blade.php ایجاد می کنم: [php]
[/php] در کد بالا ما دو متغییر ایجاد کردیم یک: status که در صورتی که ما مقدار این متغییر را زمان استفاده مشخص نکنیم به صورت پیش فرض متن "success" قرار می گیرد دو: slot که در واقع متغییر پیشفرض component می باشد . حال این کامپوننت را در یکی از ویوها (article/index) صدا میزنیم [php]
@component('alert',[ 'status'=>'danger' ]) توجه! خطایی پیش آمده است! @endcomponent [/php] در کد بالا به وسیله ی دستور component و نام alert ما کامپوننت را صدا زدیم با status مقدار متغییر را مشخص کردیم و محتوایی که بین component و endcomponent قرار دارد مقدار slot ما می باشد توجه داشته باشید که مانند status نمیتوانید slot را صدا بزنید . مگر اینکه از متغییر دیگری استفاده کرده باشید. مثال [php]
[/php] [php] @component('alert',[ 'status'=>'danger', 'footer'=>'goyii.ir - golaravel.ir' ]) توجه! خطایی پیش آمده است! @endcomponent [/php] [caption id="attachment_2459" align="aligncenter" width="300"] goyii.ir-laravel blade[/caption]
<h3><a nolink="http://www.goyii.ir">RBAC لیست کاربرانی دارای نقش خاص در YII2</a></h3>
در بسیاری از مواقع در پروژه شما نیاز به لیست کاربرانی که دارای یک نقش مشخص هستند دارید.
به عنوان مثال می خواهید لیست کاربرانی که به عنوان مدیر در سایت شما فعالیت می کنند را پیدا کنید:
<a nolink="http://www.goyii.ir/%d8%b3%d8%b7%d8%ad-%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-rbac-%d8%af%d8%b1-yii2-%d9%82%d8%b3%d9%85%d8%aa-%d8%a7%d9%88%d9%84/">rbac </a>دارای متدی است که امکان نمایش id کاربرانی که دارای یک نقش هستند را به شما می دهد :
[php]
getUserIdsByRole($roleName)
[/php]
پس از آن کافی است شما با یک حلقه کاربران مورد نیاز خود را پیدا کنید:
به کد زیر توجه کنید:
[php]
$users = [];
$list = Yii::$app->authManager->getUserIdsByRole("amin");
foreach ($list as $value) {
$u = User::findOne($value);
$users[$value] = $u->username;
}
return $users;
[/php]
در این پست از سایتgoyii قصد ایجاد فهرست کامل برای ایجاد پروژه به صورت قدم به قدم را دارم تا دوستان برای شروع بتوانند به صورت منظم و بخش به بخش مراحل را تا پیاده سازی کامل طی کنند.
درباره این سایت