view در لاراول
موضوعات
- مفاهیم پایه view
- موتور blade
- ایجاد view
- بصورت دستی
- با استفاده از artisan
- استفاده از Blade
- پوشه بندی view ها
- نمایش view
- انتقال یک routeبه یک View
- استفاده از View در یک controller
- استفاده از کلاس View
view ها در لاراول وظیفه نمایش محتوا را بر عهده دارند . هر ویو مجموعه ای از کدهای html است که برای نمایش صفحات سایت استفاده میشود.view ها در مسیر resources/views ذخیره می شوند..معمولاً از viewها از پسوند .blade.php استفاده میشود
ایجاد view
بصورت دستی
در پوشه resource یک فایل با نام home.blade.php ایجاد میکنیم و محتوای html را در آن ذخیره میکنیم
مثال
< div>this is sample < /div>
با artisan
با استفاده از دستور زیر می توان با یک view با نام about در پوشه resource ایجاد کرد و سپس محتوای ان را به دلخواه تغییر داد
php artisan make:view about
استفاده از Blade
موتور blade : لاراول برای مدیریت قالب از موتور blade استفاده میکند این موتور باعث می شود بتوانیم در html از php استفاده کنیم مانند if ,for,while,... یا یک view را در داخل view دیگر مورد استفاده قرار دهیم
ویژگیهای کلیدی Blade
سینتکس ساده و خوانا: Blade از سینتکسی مشابه HTML استفاده میکند که یادگیری و استفاده از آن را آسان میسازد.
کامپایل به PHP: تمامی قالبهای Blade به کد PHP کامپایل میشوند و تا زمانی که تغییر کنند، کش میشوند. این ویژگی باعث میشود که Blade تقریباً هیچ سرباری به برنامه شما اضافه نکند.
امنیت بالا: Blade بهطور خودکار از حملات XSS (Cross-site scripting) جلوگیری میکند.
ارثبری قالبها: Blade به شما این امکان را میدهد که قالبهای اصلی (Layouts) تعریف کنید و سپس قالبهای دیگر را بر اساس آنها ایجاد کنید. این ویژگی از تکرار کد جلوگیری میکند و باعث میشود تغییرات در ساختار کلی سایت به راحتی اعمال شود.
مثال :فایل post.blade.php راایجاد و داخل ان از سینتکس blade استفاده میکنیم که در نهایت به یک فایل php تبدیل میشود
@foreach ($posts as $post)
{{ $post->title }}
@endforeach
پوشه بندی view ها
در لاراول میتوان ویوها را پوشه بندی کرد یا به ویوهای داخل پوشه ها دسترسی داشت.برای این کار از نقطه(.) استفاده میشود
ایجاد ویو about در داخل پوشه home
php artisan make:view home.about
دسترسی به ویو داخل پوشه
return(view('home.about'))
نمایش View
با استفاده از view
برای نمایش یک ویو میتوان انرا در route استفاده کرد
Route::view('/', 'about');
با استفاده از controller
class aboutController extends Controller{
function index(){
return view('about');
}
}
Route::get('/about',[aboutController::class,'index']);
استفاده از کلاس View
در لاراول میتوان از کلاس View برای رندر کردن قالبها استفاده کرد
مثال:
class aboutController extends Controller{
function index(){
return View::make('about');
}
}
Route::get('/about',[aboutController::class,'index']);
مهمترین متدهای Facade View
| دستهبندی | متد | توضیحات | مثال |
|---|---|---|---|
| متدهای اصلی | make() | ایجاد یک view جدید با دادههای اختیاری | View::make('view.name', ['key' => 'value']) |
| first() | نمایش اولین view موجود از لیست داده شده | View::first(['custom.view', 'default.view'], $data) | |
| exists() | بررسی وجود view | if(View::exists('view.name')) { ... } | |
| متدهای زنجیرهای | with() | افزودن داده به view (تکی یا آرایه) | View::make('view')->with('name','John')->with('age',30) |
| withErrors() | افزودن خطاهای اعتبارسنجی به view | View::make('form')->withErrors($validator) | |
| متدهای Namespace | addNamespace() | ثبت namespace جدید برای viewها | View::addNamespace('admin', resource_path('views/admin')) |
| prependNamespace() | اضافه کردن namespace به ابتدای لیست | View::prependNamespace('admin', alternative_path()) | |
| متدهای پیشرفته | share() | اشتراک داده بین تمام viewها | View::share('siteName','MySite') |
| composer() | ثبت view composer (اجرا پس از ایجاد view) | View::composer('profile', fn($view) => $view->with('count', 5)) | |
| creator() | ثبت view creator (اجرا قبل از ایجاد view) | View::creator('profile', ProfileCreator::class) | |
| متدهای رندر | render() | رندر view به صورت رشته | $html = View::make('view')->render() |
| renderEach() | رندر تکراری یک view برای آیتمهای داده شده | View::renderEach('view.item', $items, 'item') |