ziggy یک دستورالعمل Blade میسازه که شما میتونید در view هاتون استفاده کنید. این یک آبجکت جاوا اسکریپت از اسم مسیرهای اپلیکیشن شما خروجی میگیره, از اسامی وارد شده (aliases), همچنین از تابع کمکی ()route گلوبال, که شما میتونید برای دسترسی مسیرها در جاوا اسکریپت ازش استفاده کنید.
نصب :
1 - Ziggy رو به فایل کامپوزر اضافه کنید :
composer require tightenco/ziggy
2 - اگر از لاراول 5٫4 استفاده می کنید خط زیر رو به آرایه provider در config/app.php بیافزایید :
Tightenco\Ziggy\ZiggyServiceProvider::class
3 - دستورالعمل Blade ما رو (که routes@ هست) جایی در template قبل از اینکه فایل های جاوا اسکریپتتون بارگذاری بشه (مثلا در هدر) قرار بدید.
نحوه استفاده :
این پکیج دستورالعمل routes@ رو با مجموعه ای از تمام مسیرهای اپلیکیشن شما جابجا میکنه. این مجموعه در window.namedRoutes قابل دسترس هست.
همچنین این پکیج یک کمکی جاوا اسکریپت اختیاری ()route میسازه که توابعی شبیه تابع لاراول ()route بتونند با نام و پارامترهای اختیاری قابل دسترس باشند.
مثال ها :
بدون پارامتر ها :
route('posts.index') // Returns '/posts'
با پارامترهای required :
route('posts.show', {id: 1}) // Returns '/posts/1'
route('posts.show', [1]) // Returns '/posts/1'
route('posts.show', 1) // Returns '/posts/1'
با چند پارامتر requied :
route('events.venues.show', {event: 1, venue: 2}) // Returns '/events/1/venues/2'
route('events.venues.show', [1, 2]) // Returns '/events/1/venues/2
اگر تمام آبجکت ها پاس داده شوند, Ziggy بصورت خودکار دنبال کلید اصلی id میگرده :
var event = {id: 1, name: 'World Series'};
var venue = {id: 2, name: 'Rogers Centre'};
route('events.venues.show', [event, venue]) // Returns '/events/1/venues/2'
مثال کاربردی ajax :
var post = {id: 1, title: 'Ziggy Stardust'};
return axios.get(route('posts.show', post))
.then((response) => {
return response.data;
});
فیلتر کردن مسیرها :
فیلتر کردن مسیرها کاملا اختیاریست. اگر شما بخواهید تمام مسیرها رو بصورت پیشفرض به جاوا اسکریپت پاس بدهید, شما میتونید بصورتی که بالا اشاره شد از ziggy استفاده کنید.
Blacklist و Whitelist
برای انجام این کار ابتدا نیاز به ساخت فایل پیکربندی ziggy.php در مسیر config دارید و بعدا باید تنظیمات whitelist و blacklist رو در آرایه ی نام های مسیر قرار بدید.
نکته : شما باید یکی از این ها رو انتخاب کنید, تنظیمات whitelist و blacklist قابلیت برگرداندن لیست پیشفرضی از مسیرها رو غیرفعال میکنه (چون فیلتر اعمال شده).
مثال فایل config/ziggy.php
return [
// 'whitelist' => ['home', 'api.*'],
'blacklist' => ['admin.*', 'vulnerabilities.*'],
];
همانطور که نشان داده شد, ziggy از علامت '*' در فیلترها استفاده میکنه. برای مثال home فقط مسیر home رو در نظر میگیره در صورتی که *.api تمام مسیرهایی که نامشون با .api شروع بشه رو در نظر میگیره, مثل api.posts.index و api.users.show.
تنظیمات پیشرفته Whitelist با گروه بندی
شما ممکنی بصورت اختیاری چندین whitelist رو با تعریف گروه ها در فایل کانفیگ ziggy تعریف کنید :
return [
'groups' => [
'admin' => [
'admin.*',
'posts.*',
],
'author' => [
'posts.*',
]
],
];
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید