🔍
🎯 ماسک کردن بخشی از رشته با یک کاراکتر خاص (مانند
🔧 نحوه استفاده:
فرض کنید میخواهید چند کاراکتر از یک رشته را مخفی کنید، مثلاً ارقام وسط یک شماره کارت:
و اگر پارامتر دوم را ندهیم از کاراکتر پنجم به بعد رشته
@PapiDon_state
Str::mask()
امروز با شما یک تابع جالب در لاراول به نام ()Str::mask را مرور میکنیم.🎯 ماسک کردن بخشی از رشته با یک کاراکتر خاص (مانند
*).🔧 نحوه استفاده:
فرض کنید میخواهید چند کاراکتر از یک رشته را مخفی کنید، مثلاً ارقام وسط یک شماره کارت:
$card = Str::mask('1234567890123456', 5, 12);
// Result : 1234********3456
در این مثال، کاراکترهای پنجم تا دوازدهم رشته با * جایگزین شدهاند.و اگر پارامتر دوم را ندهیم از کاراکتر پنجم به بعد رشته
* جایگزین خواهد شد.@PapiDon_state
👍20❤3
✨Manage your energy, not your time. If you do that, time works itself out.✨
📌انرژی خود را مدیریت کن، نه زمانت را. اگر این کار را انجام دهی، زمان خود به خود درست میشود
⏳معمولا ما به فکر این هستیم که چگونه زمان خود را به صورت بهینهتری استفاده کنیم، اما اگر انرژیامان را به درستی مدیریت نکنیم، حتی اگر زمان زیادی داشته باشیم، بهرهبرداری مناسبی از آن نخواهیم داشت.
🔋 مدیریت انرژی به مواردی مانند استراحت، تغذیه مناسب، ورزش، روانشناسی و حتی محیط کار مرتبط است. وقتی انرژیامان را به خوبی مدیریت میکنیم، بهرهوری بیشتری خواهیم داشت و زمان خود را به صورت اثربخشتری استفاده میکنیم. از این رو، به جای اینکه تنها روی زمان متمرکز شویم، باید روی انرژیامان هم تمرکز داشته باشیم.
@PapiDon_state
📌انرژی خود را مدیریت کن، نه زمانت را. اگر این کار را انجام دهی، زمان خود به خود درست میشود
⏳معمولا ما به فکر این هستیم که چگونه زمان خود را به صورت بهینهتری استفاده کنیم، اما اگر انرژیامان را به درستی مدیریت نکنیم، حتی اگر زمان زیادی داشته باشیم، بهرهبرداری مناسبی از آن نخواهیم داشت.
🔋 مدیریت انرژی به مواردی مانند استراحت، تغذیه مناسب، ورزش، روانشناسی و حتی محیط کار مرتبط است. وقتی انرژیامان را به خوبی مدیریت میکنیم، بهرهوری بیشتری خواهیم داشت و زمان خود را به صورت اثربخشتری استفاده میکنیم. از این رو، به جای اینکه تنها روی زمان متمرکز شویم، باید روی انرژیامان هم تمرکز داشته باشیم.
@PapiDon_state
👍7❤2💯1
https://laravelpodcast.com/episodes
اگر علاقه دارید که اخبار، موضوعات جدید و کلا هرچیزی درباره دنیای لاراول رو در قالب پادکست بشنوید. اینجا رو حتما بهش یه سری بزنید. 🎙
📌@PapiDon_state
اگر علاقه دارید که اخبار، موضوعات جدید و کلا هرچیزی درباره دنیای لاراول رو در قالب پادکست بشنوید. اینجا رو حتما بهش یه سری بزنید. 🎙
📌@PapiDon_state
The Laravel Podcast
The Laravel Podcast | All Episodes
The Laravel Podcast brings you Laravel and PHP development news and discussion.
👍3
🔥 Laravel Octane 🔥
برای بهینه سازی پروژه های لاراول و افزایش سرعت آنها توسط تیم لاراول ارائه شده است. این پکیج برای رسیدن به چنین عملکردی از یکی از ابزار های Swoole یا RoadRunner (بعنوان Driver) به دلخواه کاربر استفاده میکند.
✅ مزایا:
1️⃣ سرعت بیشتر
2️⃣ همگامسازی کمتر
3️⃣ سازگاری با Laravel
❌ معایب:
1️⃣مشکلات Memory Leaks
2️⃣ چالشها در Stateful Environments
3️⃣ پیچیدگی تنظیمات
4️⃣ سازگاری با برخی افزونهها
🧐 مطالعه بیشتر :
🔗 https://laravel.com/docs/10.x/octane
📌@PapiDon_state
برای بهینه سازی پروژه های لاراول و افزایش سرعت آنها توسط تیم لاراول ارائه شده است. این پکیج برای رسیدن به چنین عملکردی از یکی از ابزار های Swoole یا RoadRunner (بعنوان Driver) به دلخواه کاربر استفاده میکند.
✅ مزایا:
1️⃣ سرعت بیشتر
2️⃣ همگامسازی کمتر
3️⃣ سازگاری با Laravel
❌ معایب:
1️⃣مشکلات Memory Leaks
2️⃣ چالشها در Stateful Environments
3️⃣ پیچیدگی تنظیمات
4️⃣ سازگاری با برخی افزونهها
🧐 مطالعه بیشتر :
🔗 https://laravel.com/docs/10.x/octane
📌@PapiDon_state
👍6❤🔥1
⚙️ Bun 1.0
✨یک ابزار همهکاره برای اجرا، ساخت، آزمون و اشکالزدایی جاوااسکریپت و تایپاسکریپت است، از یک فایل تا یک برنامه کامل.
🔹 هدف اصلی "Bun" حذف کندی و پیچیدگی در توسعه است، بدون اینکه ویژگیهای جاوااسکریپت را نادیده بگیرد.
🔹تا 4 برابر سریعتر از Node.js است و پشتیبانی کاملی از TypeScript و JSX دارد.
🔹 این ابزار دارای پلاگینها، APIهای خاص و یک مدیر بسته سریع است.
🔹 یک باندلکننده و فشردهساز جاوااسکریپت و تایپاسکریپت است.
🔗 https://bun.sh/blog/bun-v1.0
📌@PapiDon_state
✨یک ابزار همهکاره برای اجرا، ساخت، آزمون و اشکالزدایی جاوااسکریپت و تایپاسکریپت است، از یک فایل تا یک برنامه کامل.
🔹 هدف اصلی "Bun" حذف کندی و پیچیدگی در توسعه است، بدون اینکه ویژگیهای جاوااسکریپت را نادیده بگیرد.
🔹تا 4 برابر سریعتر از Node.js است و پشتیبانی کاملی از TypeScript و JSX دارد.
🔹 این ابزار دارای پلاگینها، APIهای خاص و یک مدیر بسته سریع است.
🔹 یک باندلکننده و فشردهساز جاوااسکریپت و تایپاسکریپت است.
🔗 https://bun.sh/blog/bun-v1.0
📌@PapiDon_state
👍3❤1
🚀 آشنایی با متد
متد
✨استفاده از
📌@PapiDon_state
sole در لاراولمتد
sole یک متد کمکی است که هم در کوئری بیلدر و هم در مجموعهها (collections) در لاراول موجود است. وقتی از این متد استفاده میکنید، انتظار دارید که فقط یک نتیجه با شرایط معین دریافت کنید. اگر فقط یک نتیجه باشد، آن را دریافت میکنید، ولی اگر بیش از یک نتیجه یا حتی هیچ نتیجهای وجود نداشته باشد، لاراول یک خطا به شما نمایش میدهد.✨استفاده از
sole در مجموعهها (collections):$collection = collect([1, 2, 3, 4]);در مثال بالا، متد
$item = $collection->filter(function ($value) {
return $value > 3;
})->sole();
filter یک مجموعه با مقدار 4 برمیگرداند. چون تنها یک مقدار با شرط داده شده وجود دارد، متد sole آن مقدار را برمیگرداند. در صورت وجود بیشتر یا کمتر از یک مقدار مطابقت داشته باشد، استثناء رخ میدهد.📌@PapiDon_state
❤11👏5
"It always seems impossible until it's done."
🌟همیشه چیزها غیرممکن به نظر میرسند تا زمانی که انجام شوند.
این جمله به ما یادآور میشود که حتی اگر چیزی دشوار یا غیرممکن به نظر بیاید، با تلاش و پشتکار، میتوان آن را به انجام رساند. بیایید با این انرژی و باور به توانمندیهای خود، روزمان را شروع کنیم.
📌@PapiDon_state
🌟همیشه چیزها غیرممکن به نظر میرسند تا زمانی که انجام شوند.
این جمله به ما یادآور میشود که حتی اگر چیزی دشوار یا غیرممکن به نظر بیاید، با تلاش و پشتکار، میتوان آن را به انجام رساند. بیایید با این انرژی و باور به توانمندیهای خود، روزمان را شروع کنیم.
📌@PapiDon_state
👍8❤1👏1
🚀 maatwebsite/excel in Larave
این پکیج، یک ابزار قدرتمند برای کار با فایلهای Excel در فریمورک لاراول است. این ابزار اجازه میدهد که به آسانی اطلاعات را از یک فایل Excel وارد و یا به آن خروجی دهید.
✨ ویژگیها:
1. وارد کردن اطلاعات با سرعت بالا
2. خروجی با فرمتهای مختلف مانند XLS, XLSX, CSV
3. امکان مپ کردن ستونهای فایل به مدلهای دیتابیس
4. پشتیبانی از معیارها و فیلترهای مختلف
🛠نحوه نصب:
برای نصب این پکیج کافی است دستور زیر را در ترمینال خود اجرا کنید:
📖 مستندات:
https://packagist.org/packages/maatwebsite/excel
📌@PapiDon_state
این پکیج، یک ابزار قدرتمند برای کار با فایلهای Excel در فریمورک لاراول است. این ابزار اجازه میدهد که به آسانی اطلاعات را از یک فایل Excel وارد و یا به آن خروجی دهید.
✨ ویژگیها:
1. وارد کردن اطلاعات با سرعت بالا
2. خروجی با فرمتهای مختلف مانند XLS, XLSX, CSV
3. امکان مپ کردن ستونهای فایل به مدلهای دیتابیس
4. پشتیبانی از معیارها و فیلترهای مختلف
🛠نحوه نصب:
برای نصب این پکیج کافی است دستور زیر را در ترمینال خود اجرا کنید:
composer require maatwebsite/excel📖 مستندات:
https://packagist.org/packages/maatwebsite/excel
📌@PapiDon_state
👍10❤1
🚀 معرفی Pest در لاراول 🚀
آیا تا کنون با Pest آشنا شدهاید؟
🔍 یک ابزار تست نویسی جدید و پویا در لاراول است. با این ابزار، میتوانید تستهای خود را با یک سینتکس زیباتر و سادهتر نوشته و اجرا کنید.
🌟 ویژگیهای کلیدی:
1️⃣ سینتکس ساده و خواندنی: با استفاده از Pest، کدهای تست شما کوتاهتر، خواناتر و بهینهتر خواهد بود.
2️⃣ پشتیبانی از توابع Higher-order و متدهای Chainable : با این ویژگی، تستنویسی به یک تجربه انعطافپذیر و قدرتمند تبدیل میشود.
⚙️ برای استفاده از Pest کافی است از طریق
🔗 مستندات :
https://pestphp.com/
📌@PapiDon_state
آیا تا کنون با Pest آشنا شدهاید؟
🔍 یک ابزار تست نویسی جدید و پویا در لاراول است. با این ابزار، میتوانید تستهای خود را با یک سینتکس زیباتر و سادهتر نوشته و اجرا کنید.
🌟 ویژگیهای کلیدی:
1️⃣ سینتکس ساده و خواندنی: با استفاده از Pest، کدهای تست شما کوتاهتر، خواناتر و بهینهتر خواهد بود.
2️⃣ پشتیبانی از توابع Higher-order و متدهای Chainable : با این ویژگی، تستنویسی به یک تجربه انعطافپذیر و قدرتمند تبدیل میشود.
⚙️ برای استفاده از Pest کافی است از طریق
composer آن را نصب کنید:composer require pestphp/pest --dev🎉 اگر به دنبال بهبود فرآیند تست نویسی خود در لاراول هستید، Pest یک گزینه عالی است!
🔗 مستندات :
https://pestphp.com/
📌@PapiDon_state
👍6❤2👏2
✨استفاده از متد
هر زمان که بخواهید یک کنترلر با تنها یک وظیفه داشته باشید، میتوانید از متد جادویی
🔍 چرا؟
1️⃣ سادگی: نیازی به تعیین نام متد در مسیر ندارید.
2️⃣ خواندنی: کدتان تمیزتر و مستقیمتر میشود.
🌟 مثال:
کنترلر:
مسیر:
اگر از این متد در کنترلر استفاده کنید، نیازی به تعیین نام متد در مسیر (route) ندارید
همین! هر زمان که این مسیر فراخوانی میشود، متد
@PapiDon_state
__invoke در #لاراول هر زمان که بخواهید یک کنترلر با تنها یک وظیفه داشته باشید، میتوانید از متد جادویی
__invoke استفاده کنید!🔍 چرا؟
1️⃣ سادگی: نیازی به تعیین نام متد در مسیر ندارید.
2️⃣ خواندنی: کدتان تمیزتر و مستقیمتر میشود.
🌟 مثال:
کنترلر:
class ShowProfile extends Controller {
public function __invoke($id) {
// code ...
}
}مسیر:
اگر از این متد در کنترلر استفاده کنید، نیازی به تعیین نام متد در مسیر (route) ندارید
Route::get('/user/{id}', ShowProfile::class);همین! هر زمان که این مسیر فراخوانی میشود، متد
__invoke اجرا میشود. 😍@PapiDon_state
👍21❤1
🔍 الگوی (Repository Pattern) در برنامهنویسی چیست؟
📚 فرض کنید میخواهید یک کتاب از کتابخانه بیرون بیاورید:
1️⃣ اگر مستقیما وارد انبار کتابها شوید و شروع به جستجو کنید، زمان زیادی میبرد، گم میشوید و حتی ممکن است به دسترسی اطلاعات نادرست یا مناسبی نرسیده باشید.
2️⃣ اما، وقتی به میز اطلاعات مراجعه میکنید و از کتابدار کمک میخواهید، او به سرعت میتواند کتاب مورد نظر شما را پیدا و به شما بدهد.
در این مثال:
🔹کتابدار: همان "Repository" است. او میداند که هر کتاب کجا قرار دارد و چگونه باید به آن دسترسی پیدا کرد.
🔹انبار کتابها: به منابع داده اطلاعاتی (مثل پایگاههای داده یا APIها) اشاره دارد.
✨ زمانی که در برنامهنویسی از الگوی "Repository Pattern" استفاده میکنیم، به جای اینکه مستقیماً به منبع داده مراجعه کنیم، با استفاده از یک "Repository" به دادهها دسترسی پیدا میکنیم. این رویکرد باعث میشود کد برنامهی ما تمیزتر، قابل فهمتر و قابل تستتر باشد.
📌@PapiDon_state
📚 فرض کنید میخواهید یک کتاب از کتابخانه بیرون بیاورید:
1️⃣ اگر مستقیما وارد انبار کتابها شوید و شروع به جستجو کنید، زمان زیادی میبرد، گم میشوید و حتی ممکن است به دسترسی اطلاعات نادرست یا مناسبی نرسیده باشید.
2️⃣ اما، وقتی به میز اطلاعات مراجعه میکنید و از کتابدار کمک میخواهید، او به سرعت میتواند کتاب مورد نظر شما را پیدا و به شما بدهد.
در این مثال:
🔹کتابدار: همان "Repository" است. او میداند که هر کتاب کجا قرار دارد و چگونه باید به آن دسترسی پیدا کرد.
🔹انبار کتابها: به منابع داده اطلاعاتی (مثل پایگاههای داده یا APIها) اشاره دارد.
✨ زمانی که در برنامهنویسی از الگوی "Repository Pattern" استفاده میکنیم، به جای اینکه مستقیماً به منبع داده مراجعه کنیم، با استفاده از یک "Repository" به دادهها دسترسی پیدا میکنیم. این رویکرد باعث میشود کد برنامهی ما تمیزتر، قابل فهمتر و قابل تستتر باشد.
📌@PapiDon_state
🔥10❤🔥2❤1👍1🙏1
✨ فرض کنید میخواهید از یک پایگاه داده لیستی از کتابها را دریافت کنید. بدون استفاده از الگوی Repository، ممکن است مستقیماً در کنترلر خود از مدل استفاده کنید:
بدون استفاده از Repository:
BookRepository.php
1️⃣ کد شما تمیزتر و منظمتر میشود.
2️⃣ اگر روزی تصمیم به تغییر منبع داده (مثل استفاده از یک API به جای پایگاه داده) بگیرید، فقط باید مخزن مربوطه را تغییر دهید و نیازی به تغییر کنترلرها ندارید.
3️⃣ تستها نیز آسانتر انجام میشوند. شما میتوانید برای مخزن یک mock ایجاد کرده و از آن در تستها استفاده کنید.
⚙️این فقط یک مثال ساده بود. در پروژههای واقعی، الگوی Repository میتواند بسیار پیچیدهتر و قدرتمندتر باشد.
⚠️در لاراول به صورت پیش فرض دستوری برای ایجاد یک "Repository" وجود ندارد. اما شما میتوانید به صورت دستی خودتان فایلها را ایجاد کنید.
برای ایجاد یک "Repository" به صورت دستی:
1️⃣ ابتدا یک پوشه با نام "Repositories" در داخل پوشه "app" ایجاد کنید.
2️⃣درون این پوشه، یک فایل با نام Repositorie خود، مانند "BookRepository.php"، ایجاد کنید.
📌@PapiDon_state
بدون استفاده از Repository:
namespace App\Http\Controllers;اما با استفاده از الگوی Repository، شما یک مخزن برای کتابها میسازید:
use App\Models\Book;
use Illuminate\Http\Request;
class BookController extends Controller
{
public function index()
{
$books = Book::all();
return view('books.index', compact('books'));
}
}
BookRepository.php
namespace App\Repositories;حالا، در کنترلر خود، از این مخزن استفاده میکنید:
use App\Models\Book;
class BookRepository
{
protected $book;
public function __construct(Book $book)
{
$this->book = $book;
}
public function all()
{
return $this->book->all();
}
}
namespace App\Http\Controllers;با استفاده از این رویکرد:
use App\Repositories\BookRepository;
use Illuminate\Http\Request;
class BookController extends Controller
{
protected $bookRepository;
public function __construct(BookRepository $bookRepository)
{
$this->bookRepository = $bookRepository;
}
public function index()
{
$books = $this->bookRepository->all();
return view('books.index', compact('books'));
}
}
1️⃣ کد شما تمیزتر و منظمتر میشود.
2️⃣ اگر روزی تصمیم به تغییر منبع داده (مثل استفاده از یک API به جای پایگاه داده) بگیرید، فقط باید مخزن مربوطه را تغییر دهید و نیازی به تغییر کنترلرها ندارید.
3️⃣ تستها نیز آسانتر انجام میشوند. شما میتوانید برای مخزن یک mock ایجاد کرده و از آن در تستها استفاده کنید.
⚙️این فقط یک مثال ساده بود. در پروژههای واقعی، الگوی Repository میتواند بسیار پیچیدهتر و قدرتمندتر باشد.
⚠️در لاراول به صورت پیش فرض دستوری برای ایجاد یک "Repository" وجود ندارد. اما شما میتوانید به صورت دستی خودتان فایلها را ایجاد کنید.
برای ایجاد یک "Repository" به صورت دستی:
1️⃣ ابتدا یک پوشه با نام "Repositories" در داخل پوشه "app" ایجاد کنید.
2️⃣درون این پوشه، یک فایل با نام Repositorie خود، مانند "BookRepository.php"، ایجاد کنید.
📌@PapiDon_state
👍12❤1👏1🙏1
اگر تو نخواهی یاد بگیری، هیچ کس نمیتواند به تو کمک کند. اگر تو به یادگیری مصمم باشی، هیچ کس نمیتواند مانع تو باشد.
💪 @PapiDon_state
💪 @PapiDon_state
👍10❤6👏1👌1
🛠 Factory Pattern 🛠
همیشه در هنگام نوشتن کد با مواردی مواجه میشویم که نیاز به ایجاد نمونههای متعدد از یک کلاس داریم. الگوی Factory به ما کمک میکند تا این فرایند را سادهتر و منظمتر کنیم.
🧐 چرا از الگوی Factory ؟
1️⃣جداسازی فرآیند ایجاد نمونه از کد اصلی.
2️⃣انعطافپذیری بیشتر: تغییر نحوه ایجاد نمونه بدون تغییر در کد اصلی.
3️⃣ مدیریت آسانتر و ساختار بهتر برای کد.
4️⃣کد خالصتر و منظمتر.
✨در Laravel، الگوی Factory همراه با Dependency Injection استفاده میشود، که ساخت نمونههای پیچیدهتر را آسانتر میکند.
⚙️ با استفاده از Factory Pattern، میتوانید نوشتار کد خود را منعطفتر و قابل مدیریتتر کنید.
📌@PapiDon_state
همیشه در هنگام نوشتن کد با مواردی مواجه میشویم که نیاز به ایجاد نمونههای متعدد از یک کلاس داریم. الگوی Factory به ما کمک میکند تا این فرایند را سادهتر و منظمتر کنیم.
🧐 چرا از الگوی Factory ؟
1️⃣جداسازی فرآیند ایجاد نمونه از کد اصلی.
2️⃣انعطافپذیری بیشتر: تغییر نحوه ایجاد نمونه بدون تغییر در کد اصلی.
3️⃣ مدیریت آسانتر و ساختار بهتر برای کد.
4️⃣کد خالصتر و منظمتر.
✨در Laravel، الگوی Factory همراه با Dependency Injection استفاده میشود، که ساخت نمونههای پیچیدهتر را آسانتر میکند.
⚙️ با استفاده از Factory Pattern، میتوانید نوشتار کد خود را منعطفتر و قابل مدیریتتر کنید.
📌@PapiDon_state
👍12❤1
✨Factory Pattern
ما یک وبسایت فروش ماشین داریم. در این وبسایت، کاربر میتواند از میان انواع مختلف ماشینها مثل Sedan یا SUV انتخاب کند. برای سادگی، ما میخواهیم هنگام ساخت یک ماشین جدید، تنها نوع ماشین مورد نظر کاربر را مشخص کنیم و سایر جزئیات مربوط به آن نوع ماشین بطور خودکار تعیین شود.
⚙️ بدون استفاده از الگوی Factory:
1️⃣ایجاد مدلها
2️⃣استفاده از مدلها در Controller
✅ با استفاده از الگوی Factory
1️⃣ ایجاد یک Factory
2️⃣ استفاده از Factory در Controller
🛠 همانطور که میبینید، با استفاده از الگوی Factory، کد Controller سادهتر و منظمتر شده و امکان افزودن نوعهای جدیدی از ماشینها به راحتی وجود دارد، بدون آنکه نیازی به تغییر Controller باشد.
📌@PapiDon_state
ما یک وبسایت فروش ماشین داریم. در این وبسایت، کاربر میتواند از میان انواع مختلف ماشینها مثل Sedan یا SUV انتخاب کند. برای سادگی، ما میخواهیم هنگام ساخت یک ماشین جدید، تنها نوع ماشین مورد نظر کاربر را مشخص کنیم و سایر جزئیات مربوط به آن نوع ماشین بطور خودکار تعیین شود.
⚙️ بدون استفاده از الگوی Factory:
1️⃣ایجاد مدلها
// app/Models/Sedan.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Sedan extends Model {
public function description() {
return "I'm a Sedan!";
}
}
// app/Models/SUV.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class SUV extends Model {
public function description() {
return "I'm an SUV!";
}
}
2️⃣استفاده از مدلها در Controller
use App\Models\Sedan;
use App\Models\SUV;
public function createCar($type) {
if ($type === 'sedan') {
$car = new Sedan();
} elseif ($type === 'suv') {
$car = new SUV();
} else {
throw new Exception("Car type not recognized.");
}
return $car->description();
}
✅ با استفاده از الگوی Factory
1️⃣ ایجاد یک Factory
// app/Factories/CarFactory.php
namespace App\Factories;
use App\Models\Sedan;
use App\Models\SUV;
class CarFactory {
public static function create($type) {
switch($type) {
case 'sedan':
return new Sedan();
case 'suv':
return new SUV();
default:
throw new Exception("Car type not recognized.");
}
}
}
2️⃣ استفاده از Factory در Controller
use App\Factories\CarFactory;
public function createCarUsingFactory($type) {
$car = CarFactory::create($type);
return $car->description();
}
🛠 همانطور که میبینید، با استفاده از الگوی Factory، کد Controller سادهتر و منظمتر شده و امکان افزودن نوعهای جدیدی از ماشینها به راحتی وجود دارد، بدون آنکه نیازی به تغییر Controller باشد.
📌@PapiDon_state
🔥7👍3👏3❤1👌1
⚜️آشنایی با متد
🧐 چطور کار میکند؟
1️⃣ اول، بر اساس معیارهایی که مشخص کردهاید، جستجو میشود.
2️⃣ اگر رکورد با آن معیارها وجود داشت، دادهها به روز میشوند.
3️⃣ اگر وجود نداشت، یک رکورد جدید با آن مشخصات ایجاد میشود.
📌 مثال ساده:
✨ با `updateOrCreate`، همیشه اطمینان داشته باشید که دادههایتان به روز و بدون تکرار است!
📌@PapiDon_state
updateOrCreate
آیا تاکنون خواستهاید در لاراول یک رکورد را به روز کنید و اگر وجود نداشت، آن را ایجاد کنید؟ 🤔 updateOrCreate همان گزینهی مورد نظر شماست!🧐 چطور کار میکند؟
1️⃣ اول، بر اساس معیارهایی که مشخص کردهاید، جستجو میشود.
2️⃣ اگر رکورد با آن معیارها وجود داشت، دادهها به روز میشوند.
3️⃣ اگر وجود نداشت، یک رکورد جدید با آن مشخصات ایجاد میشود.
📌 مثال ساده:
$user = User::updateOrCreate(در این مثال، اگر کاربری با ایمیل
['email' => 'sample@example.com'],
['name' => 'Ali']
);
sample@example.com وجود داشت، نامش به Ali تغییر میکند. اگر نبود، کاربر جدیدی با این ایمیل و نام ایجاد میشود.✨ با `updateOrCreate`، همیشه اطمینان داشته باشید که دادههایتان به روز و بدون تکرار است!
📌@PapiDon_state
👍12❤1
کانال آموزشی لاراول
⚜️آشنایی با متد updateOrCreate آیا تاکنون خواستهاید در لاراول یک رکورد را به روز کنید و اگر وجود نداشت، آن را ایجاد کنید؟ 🤔 updateOrCreate همان گزینهی مورد نظر شماست! 🧐 چطور کار میکند؟ 1️⃣ اول، بر اساس معیارهایی که مشخص کردهاید، جستجو میشود. 2️⃣ اگر…
⚜️گسترش آشنایی با
آیا میدانستید که میتوانید چندین معیار را برای جستجو و به روزرسانی یا ایجاد رکورد جدید استفاده کنید؟ 📚✨
🔍 مثال:
فرض کنید میخواهید چاپهای مختلف یک کتاب را مدیریت کنید. با استفاده از متد
📌@PapiDon_state
updateOrCreate در لاراول با معیارهای چندگانهآیا میدانستید که میتوانید چندین معیار را برای جستجو و به روزرسانی یا ایجاد رکورد جدید استفاده کنید؟ 📚✨
🔍 مثال:
فرض کنید میخواهید چاپهای مختلف یک کتاب را مدیریت کنید. با استفاده از متد
updateOrCreate ، میتوانید بر اساس عنوان، ناشر، سال چاپ و نوع جلد چک کنید که آیا چاپ مورد نظر وجود دارد یا خیر.Book::updateOrCreate(
['title' => '1984',
'publisher' => 'Penguin',
'year' => 2020,
'cover_type' => 'Hardcover'
],
['edition_number' => 5]
);
🌟 با استفاده از updateOrCreate و معیارهای چندگانه، همیشه اطمینان داشته باشید که اطلاعاتتان به روز و یکتا هستند!📌@PapiDon_state
👍8🙏2❤1
🔥 آشنایی با متد
⚙️ چگونه عمل میکند؟
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکوردی با این معیارها یافت شد، آن رکورد برگردانده میشود.
3️⃣ - در غیر این صورت، یک رکورد جدید با آن معیارها ایجاد و برگردانده میشود.
📌 مثال:
✨ با
📌@PapiDon_state
firstOrCreate
🧐 به دنبال یک روش سریع و ساده برای جستجو یا ایجاد یک رکورد در دیتابیس هستید؟ firstOrCreate پاسخ شماست!⚙️ چگونه عمل میکند؟
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکوردی با این معیارها یافت شد، آن رکورد برگردانده میشود.
3️⃣ - در غیر این صورت، یک رکورد جدید با آن معیارها ایجاد و برگردانده میشود.
📌 مثال:
$user = User::firstOrCreate(در این مثال، اگر کاربری با ایمیل
['email' => 'sample@example.com'],
['name' => 'Ali']
);
sample@example.com وجود داشته باشد، آن را برمیگرداند. اگر نباشد، یک کاربر جدید با نام Ali و این ایمیل ایجاد میکند.✨ با
firstOrCreate ، همیشه اطمینان داشته باشید که با سرعت به جستجو و ایجاد رکوردها پرداخته میشود!📌@PapiDon_state
👍6❤2🔥2
⚠️🛠 تفاوتهای
✨هر دو این متدها برای کمک به شما در جستجو، به روزرسانی یا ایجاد رکوردها در دیتابیس هستند، اما با تفاوتهایی:
🔹 firstOrCreate:
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکورد یافت شد، آن را برمیگرداند.
3️⃣ - اگر رکوردی نیافت، یک رکورد جدید با معیارهای مشخص شده ایجاد میکند.
🔸updateOrCreate:
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکورد یافت شد، مقادیر مورد نظر را به روزرسانی میکند.
3️⃣ - اگر رکوردی نیافت، یک رکورد جدید با معیارهای مشخص شده ایجاد میکند.
🧐 بنابراین، تفاوت اصلی بین این دو در این است که
💡 آیا قبلا از این متدها استفاده کردهاید؟
📌@PapiDon_state
firstOrCreate و updateOrCreate ✨هر دو این متدها برای کمک به شما در جستجو، به روزرسانی یا ایجاد رکوردها در دیتابیس هستند، اما با تفاوتهایی:
🔹 firstOrCreate:
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکورد یافت شد، آن را برمیگرداند.
3️⃣ - اگر رکوردی نیافت، یک رکورد جدید با معیارهای مشخص شده ایجاد میکند.
🔸updateOrCreate:
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکورد یافت شد، مقادیر مورد نظر را به روزرسانی میکند.
3️⃣ - اگر رکوردی نیافت، یک رکورد جدید با معیارهای مشخص شده ایجاد میکند.
🧐 بنابراین، تفاوت اصلی بین این دو در این است که
updateOrCreate میتواند یک رکورد موجود را به روز کند، در حالی که firstOrCreate فقط یافتن یا ایجاد رکورد جدید را انجام میدهد.💡 آیا قبلا از این متدها استفاده کردهاید؟
📌@PapiDon_state
👍16❤2