سلام دوستان عرض ادب
ببخشید میخواستم بدونم وقتی میخایم اطلاعات رو از دیتا بیس بگیریم چه موقع بایدget بزنیم ؟چرا با بعضی متدها مثه select لازمه که بعدش از get استفاده کنیم اما برا all نه ؟؟ی توضیح کاملی بدین ممنون میشم.
@mirzamohammad.com
ببینید شما وقتی از متد all استفاده میکنین که در واقع انگار هیچ شرطی ندارین و تمامی مقادیر رو براتون بر میگردونه، پس اینجا دیگه نیازی نیست که دوباره بعدش از get استفاده بشه چون get هم همین کار رو میکنه.
یا مثلا متد first زمانی استفاده میشه که مثلا شما فقط میخوای یک دونه کاربر رو برگردونی که به این شکل میشه :
User::where('id',$id)->first();
توی این مثال شما فقط یک دونه کاربر رو داری برمیگردونی پس نیازی نیست از get یا all بعد first استفاده کنی چون خود متد first داره برگردوندن یک دونه مقدار رو انجام میده.
متد select هم بیشتر برای زمانی اجرا میشه که مثلا شما میخوای محصولات رو برگردونی، محصولاتت شاید 10 تا ستون مختلف از اطلاعات مختلف داشته باشه، اما مثلا شما فقط به تیتر محصول نیاز داری اونجا میای به این صورت از select استفاده میکنی :
Product::select(['title'])->get();
اینجا داری میگی از تمامی محصولات فقط تیتر هاشون رو بیار، حتی میتونی توی select از where هم استفاده کنی.
در کل بستگی به اون چیزی که میخوای واست برگردونه داره.
اگر بخوای تمامی مقدار ها رو برگردونی بدون هیچ شرطی از متد all استفاده میکنی.
اگر بخوای با توجه به یک شرط فقط یک مقدار رو برگردونی از متد first استفاده میکنی.
اگر بخوای با توجه به شرطی که داری چند تا مقدار رو برگردونی از متد get استفاده میکنی.
اگر بخوای فقط از چند تا ستونی که داری یک ستون خاص رو حالا یا از همه مقادیرت یا یک مقدار خاص برگردونی از متد select استفاده میکنی که بعد از متد select هم میتونه get بیاد هم first بیاد.
شما باید با query builder لاراول بیشتر آشنا بشید. در واقض وقتی شما متدی مثل where استفاده میکنید به اینصورت هست که شما یک کوئری where اضافه میکنید و مقدار برگشتی کوئری بیلدر هست. که شما یا میتونید به صورت زنجیره ای کوئری های بعدی را اضافه کنید یا برای دریافت نتیجه میتونید از get استفاده کنید.
اگر متدی که استفاده میکنید خروجیش کوئری بیلدر باشه نیاز هست get استفاده کنید ولی اگر خروجیش collection باشه نیازی به get نیست.
مثلا متدی مثل all تمام نتایج برمیگردونه یا first اولین نتیجه را برمیگردونه بعد این موارد get لازم نیست.
@ariaieboy
وال لا ویدیو زیاد دیدم در مورد کوئری بیلدر اما هیچکدم مثلا نمیاد بگه به چه دلیلی مثلا بعد first و all نیازی به get نداریم اما بعد مثلا where نیاز داریم.همشون مثلا میان متدایی مثه first و all را توضیح میدن و get هم استفاده نمیکنن اما دلیلشا چیزی نمیگن یا مثلا برای where استفاده میکنن و میگن چون باید اطلاعاتا برگردونیم استفاده میکنیم.
@mirzamohammad.com
ببینید شما وقتی از متد all استفاده میکنین که در واقع انگار هیچ شرطی ندارین و تمامی مقادیر رو براتون بر میگردونه، پس اینجا دیگه نیازی نیست که دوباره بعدش از get استفاده بشه چون get هم همین کار رو میکنه.
یا مثلا متد first زمانی استفاده میشه که مثلا شما فقط میخوای یک دونه کاربر رو برگردونی که به این شکل میشه :
User::where('id',$id)->first();
توی این مثال شما فقط یک دونه کاربر رو داری برمیگردونی پس نیازی نیست از get یا all بعد first استفاده کنی چون خود متد first داره برگردوندن یک دونه مقدار رو انجام میده.
متد select هم بیشتر برای زمانی اجرا میشه که مثلا شما میخوای محصولات رو برگردونی، محصولاتت شاید 10 تا ستون مختلف از اطلاعات مختلف داشته باشه، اما مثلا شما فقط به تیتر محصول نیاز داری اونجا میای به این صورت از select استفاده میکنی :
Product::select(['title'])->get();
اینجا داری میگی از تمامی محصولات فقط تیتر هاشون رو بیار، حتی میتونی توی select از where هم استفاده کنی.
در کل بستگی به اون چیزی که میخوای واست برگردونه داره.
اگر بخوای تمامی مقدار ها رو برگردونی بدون هیچ شرطی از متد all استفاده میکنی.
اگر بخوای با توجه به یک شرط فقط یک مقدار رو برگردونی از متد first استفاده میکنی.
اگر بخوای با توجه به شرطی که داری چند تا مقدار رو برگردونی از متد get استفاده میکنی.
اگر بخوای فقط از چند تا ستونی که داری یک ستون خاص رو حالا یا از همه مقادیرت یا یک مقدار خاص برگردونی از متد select استفاده میکنی که بعد از متد select هم میتونه get بیاد هم first بیاد.
با سلام
دلیل استفاده از متد get بر میگرده به fetch و fetchAll در ارتباط با دیتابیس ، وقتی شما از متد where استفاده می کنید این متد توانایی مشخص کردن نوع fetch یا fetchAll از دیتابیس رو نداره و باید در آخرش از get استفاده کنید تا از طریق متد get عملیات به شکل fetchAll دریافت بشه اما متد هایی مثل find خودشون دارای fetch هستند و دیگه نیازی به get ندارند
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟