Collection یکی از قدرتمندترین امکاناتی است که لاراول در اختیار شما قرار میدهد. در واقع اگر با ماهیت Collectionها در لاراول آشنایی نداشته باشید، احتمالا در هنگام کار کردن با الوکوئنت (Eloquent) لاراول با مشکل مواجه میشوید. به طور مثال در سادهترین حالت، فرض کنید دهها داده دارید که میخواهید میانگین این دادهها را حساب کنید، یا فرض کنید که آرایهای از اعداد، نامها، تاریخ مصرف کالاها، قیمت مصرف کننده و قیمت فروش دارید، حال بدون استفاده از Collectionها محاسبه مجموع فروش یک روز تقریبا غیر ممکن میشود. اینها تنها مثالهای بسیار کوچکی از Collectionها است که در این مقاله به معرفی آنها و آموزش کار با آن میپردازیم.
نام Collectionها در لاراول
لاراول تا به امروز شامل بیش از ۱۲۰ Collection با قابلیتهای شگفت انگیزی است که ابتدا این Collectionها را نام میبریم و سپس به توضیح هر کدام از آنها میپردازیم.- all
- average
- avg
- chunk
- collapse
- collect
- combine
- concat
- contains
- count
- countBy
- crossJoin
- dd
- diff
- diffAssoc
- diffKeys
- dump
- duplicates
- duplicatesStrict
- each
- except
- first
- firstWhere
- flip
- forget
- get
- groupBy
- has
- implode
- intersect
- intersectByKeys
- isEmpty
- isNotEmpty
- join
- last
- max
- median
- merge
- mergeRecursive
- min
- pluck
- pop
- prepend
- pull
- push
- put
- random
- replace
- reverse
- search
- shift
- shuffle
- sort
- sortBy
- sortByDesc
- sortDesc
- sortKeys
- sortKeysDesc
- splice
- sum
- times
- toArray
- unique
- unless
- unwrap
- values
- where
- whereStrict
- whereBetween
- whereIn
- whereInStrict
- whereInstanceOf
- whereNotBetween
کاربرد Collectionها در لاراول
تمامی Collection هایی که در بالا نام بردیم کاربردهای متعددی دارند که بهترتیب به تمام آنها میپردازیم.
all
این متد تمام دادههای یک آرایه را برمیگرداند.collect([1, 2, 3])->all();
// [1, 2, 3]
average
این متد و متد ()avg میانگین دادهها را به ما برمیگرداند.$average = collect([['foo' => 10], ['foo' => 10], ['foo' => 20], ['foo' => 40]])->avg('foo');
// 20
$average = collect([1, 1, 2, 4])->average();
// 2
chunk
این متد یک آرایه را بهصورت مساوی دسته بندی میکند. بهطور مثال اگر بر روی یک آرایهی ۸ تایی (4)chunk را اعمال کنیم. این آرایه به ۲ آرایهی ۴ تایی تقسیم میشود، البته اگر بهطور مثال تعداد اعضای آرایه ۱۰ باشد، chunk آن را به ۲ آرایهی ۴ تایی و ۱ آرایهی ۲ تایی تقسیم میکند.$collection = collect([1, 2, 3, 4, 5, 6, 7]);
$chunks = $collection->chunk(4);
$chunks->toArray();
// [[1, 2, 3, 4], [5, 6, 7]]
این متد هنگام کار با Viewها بسیار کاربردی میباشد، در مثال زیر Productها را به آرایههای ۳ تایی تقسیم کردیم و سپس نمایش دادیم.
@foreach ($products->chunk(3) as $chunk)
<div class="row">
@foreach ($chunk as $product)
<div class="col-xs-4">{{ $product->name }}</div>
@endforeach
</div>
@endforeach
collapse
این متد چند آرایه را به یک آرایه تبدیل میکند.$collection = collect([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
$collapsed = $collection->collapse();
$collapsed->all();
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
collect
این متد یک Collection جدید از روی Collection اصلی ایجاد میکند، یعنی میتوانیم از این متد هنگامی که میخواهیم از یک Collection کپی بگیریم، استفاده کنیم.$collectionA = collect([1, 2, 3]);
$collectionB = $collectionA->collect();
$collectionB->all();
// [1, 2, 3]
combine
این متد بر روی بیش از یک آرایه اعمال میشود، به این صورت که فرض کنید یک آرایه با مقادیر نام و سن و یک آرایهی دیگر با مقدار علی و ۲۰ داریم. حال اگر این دو آرایه را Combine کنیم، آرایهی نهایی به صورت [ '۲۰'<='سن' , 'علی'<='نام' ] درمیآید.$collection = collect(['name', 'age']);
$combined = $collection->combine(['George', 29]);
$combined->all();
// ['name' => 'George', 'age' => 29]
concat
این متد Valueهای دو یا چند آرایه را در یک آرایه قرار میدهد.$collection = collect(['John Doe']);
$concatenated = $collection->concat(['Jane Doe'])->concat(['name' => 'Johnny Doe']);
$concatenated->all();
// ['John Doe', 'Jane Doe', 'Johnny Doe']
contains
از این متد زمانی استفاده میکنیم که بخواهیم بدانیم آیا یک Value در یک آرایه وجود دارد یا خیر.$collection = collect(['name' => 'Desk', 'price' => 100]);
$collection->contains('Desk');
// true
$collection->contains('New York');
// false
همچنین میتوانیم چک کنیم که آیا یک Key و Value بهطور همزمان در یک آرایه وجود دارند یا خیر.
$collection = collect([
['product' => 'Desk', 'price' => 200],
['product' => 'Chair', 'price' => 100],
]);
$collection->contains('product', 'Bookcase');
// false
count
این متد تعداد دادههای موجود در یک Collection یا آرایه را برمیگرداند.$collection = collect([1, 2, 3, 4]);
$collection->count();
// 4
countBy
این متد تعداد تكرار هر داده را به ما برمیگرداند.$collection = collect([1, 2, 2, 2, 3]);
$counted = $collection->countBy();
$counted->all();
// [1 => 1, 2 => 3, 3 => 1]
crossJoin
این متد بهطور مثال هنگامی که بر روی دو آرایه اعمال شود، دادهی اول آرایهی اول را به تمام دادههای آرایهی دوم، داده دوم آرایهی اول را به تمام دادههای آرایهی دوم و به همین صورت تا انتها نسبت میدهد.$collection = collect([1, 2]);
$matrix = $collection->crossJoin(['a', 'b']);
$matrix->all();
/*
[
[1, 'a'],
[1, 'b'],
[2, 'a'],
[2, 'b'],
]
*/
$collection = collect([1, 2]);
$matrix = $collection->crossJoin(['a', 'b'], ['I', 'II']);
$matrix->all();
/*
[
[1, 'a', 'I'],
[1, 'a', 'II'],
[1, 'b', 'I'],
[1, 'b', 'II'],
[2, 'a', 'I'],
[2, 'a', 'II'],
[2, 'b', 'I'],
[2, 'b', 'II'],
]
*/
dd
این متد در هر جایی از کد بیاید تمام دادههای درخواستی را نمایش میدهد و پس از آن ادامهی کد متوقف خواهد شد.$collection = collect(['John Doe', 'Jane Doe']);
$collection->dd();
/*
Collection {
#items: array:2 [
0 => "John Doe"
1 => "Jane Doe"
]
}
*/
اگر میخواهید که ادامهی کد متوقف نشود، میتوانید بهجای dd از dump استفاده کنید.
dump
این متد در هر جایی از کد بیاید تمام دادههای درخواستی را نمایش میدهد و پس از کد ادامه پیدا میکند.The dump method dumps the collection's items:
$collection = collect(['John Doe', 'Jane Doe']);
$collection->dump();
/*
Collection {
#items: array:2 [
0 => "John Doe"
1 => "Jane Doe"
]
}
*/
diff
این متد اگر بر روی ۲ آرایه اعمال شود، تمام دادههایی که در آرایهی اول وجود دارد ولی در آرایهی دوم وجود ندارد را برمیگرداند.$collection = collect([1, 2, 3, 4, 5]);
$diff = $collection->diff([2, 4, 6, 8]);
$diff->all();
// [1, 3, 5]
diffAssoc
این متد همانند متد diff عمل میکند با این تفاوت که بهجای بررسی Value ها، هم Value و هم Key دو یا چند آرایه را با هم مطابقت میدهد و در صورتی که دقیق همان Key و Value که در آرایهی اول وجود دارد در آرایهی دوم وجود نداشته باشد، Key و Value آرایهی اول را برمیگرداند.$collection = collect([
'color' => 'orange',
'type' => 'fruit',
'remain' => 6,
]);
$diff = $collection->diffAssoc([
'color' => 'yellow',
'type' => 'fruit',
'remain' => 3,
'used' => 6,
]);
$diff->all();
// ['color' => 'orange', 'remain' => 6]
diffKeys
این متد همانند متد diff عمل میکند با این تفاوت که بهجای بررسی Value ها، Keyها را بررسی میکند.$collection = collect([
'one' => 10,
'two' => 20,
'three' => 30,
'four' => 40,
'five' => 50,
]);
$diff = $collection->diffKeys([
'two' => 2,
'four' => 4,
'six' => 6,
'eight' => 8,
]);
$diff->all();
// ['one' => 10, 'three' => 30, 'five' => 50]
duplicates
این متد تمام دادههایی که ۲ بار تکرار شدهاند را برمیگرداند.$collection = collect(['a', 'b', 'a', 'c', 'b']);
$collection->duplicates();
// [2 => 'a', 4 => 'b']
اگر بخواهیم در یک یا چند آرایه، بین Keyهای خاص، دنبال مقادیری بگردیم که ۲ بار تکرار شدهاند، به شکل زیر عمل میکنیم.
$employees = collect([
['email' => 'abigail@example.com', 'position' => 'Developer'],
['email' => 'james@example.com', 'position' => 'Designer'],
['email' => 'victoria@example.com', 'position' => 'Developer'],
])
$employees->duplicates('position');
// [2 => 'Developer']
each
این متد تمام دادههای یک آرایه را مانند حلقه foreach جدا میکند و برمیگرداند.$collection->each(function ($item, $key) {
//
});
except
این متد تمام دادههای یک آرایه را بهغیر از مقادیری که وارد کردیم برمیگرداند.$collection = collect(['product_id' => 1, 'price' => 100, 'discount' => false]);
$filtered = $collection->except(['price', 'discount']);
$filtered->all();
// ['product_id' => 1]
first
این متد اولين دادهی یک آرایه را برمیگرداند.collect([1, 2, 3, 4])->first();
// 1
firstWhere
این متد اولين دادهی یک آرایه را با شرط خاصی که بیان میکنیم برمیگرداند.$collection = collect([
['name' => 'Regena', 'age' => null],
['name' => 'Linda', 'age' => 14],
['name' => 'Diego', 'age' => 23],
['name' => 'Linda', 'age' => 84],
]);
$collection->firstWhere('name', 'Linda');
// ['name' => 'Linda', 'age' => 14]
بهطور مثال در کد بالا اولين دادهای که نامش Linda است را دریافت میکنیم.
$collection->firstWhere('age', '>=', 18);
// ['name' => 'Diego', 'age' => 23]
یا در این مثال اولين دادهای که سنش بزرگتر مساوی ۱۸ باشد را دریافت میکنیم.
flip
این متد جای Key و Value آرایه را عوض میکند.$collection = collect(['name' => 'taylor', 'framework' => 'laravel']);
$flipped = $collection->flip();
$flipped->all();
// ['taylor' => 'name', 'laravel' => 'framework']
forget
این متد یک Key و Value را از آرایه پاک میکند.$collection = collect(['name' => 'taylor', 'framework' => 'laravel']);
$collection->forget('name');
$collection->all();
// ['framework' => 'laravel']
get
در این متد با فراخوانی Key یک داده میتوانید Value آن داده را بخوانید.$collection = collect(['name' => 'taylor', 'framework' => 'laravel']);
$value = $collection->get('name');
// taylor
groupBy
این متد یک آرایه را گروهبندی میکند، یعنی هنگامی که یک مقدار را به این متد ارسال میکنیم، با توجه به آن مقدار، گروههای مختلفی از دادههای آن آرایه ایجاد میشود.$collection = collect([
['account_id' => 'account-x10', 'product' => 'Chair'],
['account_id' => 'account-x10', 'product' => 'Bookcase'],
['account_id' => 'account-x11', 'product' => 'Desk'],
]);
$grouped = $collection->groupBy('account_id');
$grouped->toArray();
/*
[
'account-x10' => [
['account_id' => 'account-x10', 'product' => 'Chair'],
['account_id' => 'account-x10', 'product' => 'Bookcase'],
],
'account-x11' => [
['account_id' => 'account-x11', 'product' => 'Desk'],
],
]
*/
has
این متد وجود یک یا چند داده را در آرایه بررسی میکند.$collection = collect(['account_id' => 1, 'product' => 'Desk', 'amount' => 5]);
$collection->has('product');
// true
$collection->has(['product', 'amount']);
// true
$collection->has(['amount', 'price']);
// false
implode
این متد Valueهای یک آرایه را به هم میچسباند.$collection = collect([
['account_id' => 1, 'product' => 'Desk'],
['account_id' => 2, 'product' => 'Chair'],
]);
$collection->implode('product', ', ');
// Desk, Chair
collect([1, 2, 3, 4, 5])->implode('-');
// '1-2-3-4-5'
intersect
این متد هنگام مقایسه ۲ آرایه تمام دادههایی که در آرایهی اول و دوم وجود دارد را به ما نشان میدهد.$collection = collect(['Desk', 'Sofa', 'Chair']);
$intersect = $collection->intersect(['Desk', 'Chair', 'Bookcase']);
$intersect->all();
// [0 => 'Desk', 2 => 'Chair']
Key دادههای جدید همان Key آرایهی اول میباشد
intersectByKeys
این متد هنگام مقایسه ۲ آرایه تمام Key هایی که در آرایهی اول و دوم وجود دارد را همراه با Value آرایهی اول به ما نشان میدهد.$collection = collect([
'serial' => 'UX301', 'type' => 'screen', 'year' => 2009,
]);
$intersect = $collection->intersectByKeys([
'reference' => 'UX404', 'type' => 'tab', 'year' => 2011,
]);
$intersect->all();
// ['type' => 'screen', 'year' => 2009]
isEmpty
این متد خالی بودن یک آرایه را چک میکند.collect([])->isEmpty();
// true
isNotEmpty
این متد خالی نبودن یک آرایه را چک میکند.collect([])->isNotEmpty();
// false
join
این متد Valueهای یک آرایه را همانطور که ما بخواهیم به هم میچسباند.collect(['a', 'b', 'c'])->join(', '); // 'a, b, c'
collect(['a', 'b', 'c'])->join(', ', ', and '); // 'a, b, and c'
collect(['a', 'b'])->join(', ', ' and '); // 'a and b'
collect(['a'])->join(', ', ' and '); // 'a'
collect([])->join(', ', ' and '); // ''
last
این متد آخرین دادهی یک آرایه را برمیگرداند.collect([1, 2, 3, 4])->last(function ($value, $key) {
return $value < 3;
});
// 2
collect([1, 2, 3, 4])->last();
// 4
max
این متد بزرگترین دادهی یک آرایه را برمیگرداند.$max = collect([['foo' => 10], ['foo' => 20]])->max('foo');
// 20
$max = collect([1, 2, 3, 4, 5])->max();
// 5
median
این متد دادهی وسطی یک آرایه را برمیگرداند و در صورتی که دو آرایه در وسط قرار داشته باشند میانگین آنها را برمیگرداند.$median = collect([['foo' => 10], ['foo' => 10], ['foo' => 20], ['foo' => 40]])->median('foo');
// 15
$median = collect([1, 1, 2, 4])->median();
// 1.5
merge
این متد دادههای یک آرایه را به هم میچسباند و در صورتی که یکی از دادهها در آرایهی دوم قرار داشته باشد آن را در آرایهی نهایی قرار میدهد.$collection = collect(['product_id' => 1, 'price' => 100]);
$merged = $collection->merge(['price' => 200, 'discount' => false]);
$merged->all();
// ['product_id' => 1, 'price' => 200, 'discount' => false]
$collection = collect(['Desk', 'Chair']);
$merged = $collection->merge(['Bookcase', 'Door']);
$merged->all();
// ['Desk', 'Chair', 'Bookcase', 'Door']
mergeRecursive
این متد دادههای یک آرایه را به هم میچسباند و در صورت تکرار یک داده، هر دوی آنها را در آرایه نهایی قرار میدهد.$collection = collect(['product_id' => 1, 'price' => 100]);
$merged = $collection->mergeRecursive(['product_id' => 2, 'price' => 200, 'discount' => false]);
$merged->all();
// ['product_id' => [1, 2], 'price' => [100, 200], 'discount' => false]
min
این متد کوچکترین داده یک آرایه را برمیگرداند.$min = collect([['foo' => 10], ['foo' => 20]])->min('foo');
// 10
$min = collect([1, 2, 3, 4, 5])->min();
// 1
pluck
این متد تمام Valueهای یک آرایه با یک Key خاص را برمیگرداند.$collection = collect([
['product_id' => 'prod-100', 'name' => 'Desk'],
['product_id' => 'prod-200', 'name' => 'Chair'],
]);
$plucked = $collection->pluck('name');
$plucked->all();
// ['Desk', 'Chair']
pop
این متد دادهی آخر یک آرایه را ابتدا به ما نشان میدهد و سپس آن را از آرایهی اصلی حذف میکند.$collection = collect([1, 2, 3, 4, 5]);
$collection->pop();
// 5
$collection->all();
// [1, 2, 3, 4]
prepend
این متد یک داده را به ابتدای یک آرایه اضافه میکند.$collection = collect([1, 2, 3, 4, 5]);
$collection->prepend(0);
$collection->all();
// [0, 1, 2, 3, 4, 5]
pull
این متد Value یک Key را ابتدا به ما نشان میدهد و سپس آن را از آرایهی اصلی حذف میکند.$collection = collect(['product_id' => 'prod-100', 'name' => 'Desk']);
$collection->pull('name');
// 'Desk'
$collection->all();
// ['product_id' => 'prod-100']
push
این متد یک داده را به انتهای یک آرایه اضافه میکند.$collection = collect([1, 2, 3, 4]);
$collection->push(5);
$collection->all();
// [1, 2, 3, 4, 5]
put
این متد یک Key و Value را به انتهای یک آرایه اضافه میکند.$collection = collect(['product_id' => 1, 'name' => 'Desk']);
$collection->put('price', 100);
$collection->all();
// ['product_id' => 1, 'name' => 'Desk', 'price' => 100]
random
این متد یک داده را بهصورت تصادفی برمیگرداند.$collection = collect([1, 2, 3, 4, 5]);
$collection->random();
// 4 - (retrieved randomly)
replace
این متد دادههای دو آرایه را در صورت وجود جابهجا و در صورت وجود نداشتن، ایجاد میکند.$collection = collect(['Taylor', 'Abigail', 'James']);
$replaced = $collection->replace([1 => 'Victoria', 3 => 'Finn']);
$replaced->all();
// ['Taylor', 'Victoria', 'James', 'Finn']
reverse
این متد دادههای یک آرایه را از آخر به اول مرتب میکند.$collection = collect(['a', 'b', 'c', 'd', 'e']);
$reversed = $collection->reverse();
$reversed->all();
/*
[
4 => 'e',
3 => 'd',
2 => 'c',
1 => 'b',
0 => 'a',
]
*/
search
این متد Key یک Value را پیدا میکند.$collection = collect([2, 4, 6, 8]);
$collection->search(4);
// 1
shift
این متد دادهی اول یک آرایه را ابتدا به ما نشان میدهد و سپس آن را از آرایهی اصلی حذف میکند.$collection = collect([1, 2, 3, 4, 5]);
$collection->shift();
// 1
$collection->all();
// [2, 3, 4, 5]
shuffle
این متد دادههای یک آرایه را درهم میکند.$collection = collect([1, 2, 3, 4, 5]);
$shuffled = $collection->shuffle();
$shuffled->all();
// [3, 2, 5, 1, 4] - (generated randomly)
sort
این متد دادههای یک آرایه را از کوچک به بزرگ مرتب میکند.$collection = collect([5, 3, 1, 2, 4]);
$sorted = $collection->sort();
$sorted->values()->all();
// [1, 2, 3, 4, 5]
sortBy
این متد دادههای یک آرایه را با توجه به Key وارد شده از کوچک به بزرگ مرتب میکند.$collection = collect([
['name' => 'Desk', 'price' => 200],
['name' => 'Chair', 'price' => 100],
['name' => 'Bookcase', 'price' => 150],
]);
$sorted = $collection->sortBy('price');
$sorted->values()->all();
/*
[
['name' => 'Chair', 'price' => 100],
['name' => 'Bookcase', 'price' => 150],
['name' => 'Desk', 'price' => 200],
]
*/
sortDesc
این متد دادههای یک آرایه را از بزرگ به کوچک مرتب میکند.$collection = collect([5, 3, 1, 2, 4]);
$sorted = $collection->sortDesc();
$sorted->values()->all();
// [5, 4, 3, 2, 1]
sortKeys
این متد Keyهای یک آرایه را از حرف یا عدد کوچک به بزرگ مرتب میکند.$collection = collect([
'id' => 22345,
'first' => 'John',
'last' => 'Doe',
]);
$sorted = $collection->sortKeys();
$sorted->all();
/*
[
'first' => 'John',
'id' => 22345,
'last' => 'Doe',
]
*/
splice
این متد تعداد دلخواهی از دادههای یک آرایه را حذف میکند و سپس برمیگرداند.$collection = collect([1, 2, 3, 4, 5]);
$chunk = $collection->splice(2);
$chunk->all();
// [3, 4, 5]
$collection->all();
// [1, 2]
sum
این متد مجموع دادههای یک آرایه را برمیگرداند.collect([1, 2, 3, 4, 5])->sum();
// 15
$collection = collect([
['name' => 'JavaScript: The Good Parts', 'pages' => 176],
['name' => 'JavaScript: The Definitive Guide', 'pages' => 1096],
]);
$collection->sum('pages');
// 1272
toArray
این متد یک Collection را به یک آرایه تبدیل میکند.$collection = collect(['name' => 'Desk', 'price' => 200]);
$collection->toArray();
/*
[
['name' => 'Desk', 'price' => 200],
]
*/
toJson
این متد یک Collection را به یک کد با فرمت Json تبدیل میکند.$collection = collect(['name' => 'Desk', 'price' => 200]);
$collection->toJson();
// '{"name":"Desk", "price":200}'
unique
این متد دادههایی که تنها یک بار تكرار شده است را برمیگرداند.$collection = collect([1, 1, 2, 2, 3, 4, 2]);
$unique = $collection->unique();
$unique->values()->all();
// [1, 2, 3, 4]
$collection = collect([
['name' => 'iPhone 6', 'brand' => 'Apple', 'type' => 'phone'],
['name' => 'iPhone 5', 'brand' => 'Apple', 'type' => 'phone'],
['name' => 'Apple Watch', 'brand' => 'Apple', 'type' => 'watch'],
['name' => 'Galaxy S6', 'brand' => 'Samsung', 'type' => 'phone'],
['name' => 'Galaxy Gear', 'brand' => 'Samsung', 'type' => 'watch'],
]);
$unique = $collection->unique('brand');
$unique->values()->all();
/*
[
['name' => 'iPhone 6', 'brand' => 'Apple', 'type' => 'phone'],
['name' => 'Galaxy S6', 'brand' => 'Samsung', 'type' => 'phone'],
]
*/
$unique = $collection->unique(function ($item) {
return $item['brand'].$item['type'];
});
$unique->values()->all();
/*
[
['name' => 'iPhone 6', 'brand' => 'Apple', 'type' => 'phone'],
['name' => 'Apple Watch', 'brand' => 'Apple', 'type' => 'watch'],
['name' => 'Galaxy S6', 'brand' => 'Samsung', 'type' => 'phone'],
['name' => 'Galaxy Gear', 'brand' => 'Samsung', 'type' => 'watch'],
]
*/
where
این متد دادههایی با شرایطی که وارد میکنیم را برمیگرداند.$collection = collect([
['product' => 'Desk', 'price' => 200],
['product' => 'Chair', 'price' => 100],
['product' => 'Bookcase', 'price' => 150],
['product' => 'Door', 'price' => 100],
]);
$filtered = $collection->where('price', 100);
$filtered->all();
/*
[
['product' => 'Chair', 'price' => 100],
['product' => 'Door', 'price' => 100],
]
*/
$collection = collect([
['name' => 'Jim', 'deleted_at' => '2019-01-01 00:00:00'],
['name' => 'Sally', 'deleted_at' => '2019-01-02 00:00:00'],
['name' => 'Sue', 'deleted_at' => null],
]);
$filtered = $collection->where('deleted_at', '!=', null);
$filtered->all();
/*
[
['name' => 'Jim', 'deleted_at' => '2019-01-01 00:00:00'],
['name' => 'Sally', 'deleted_at' => '2019-01-02 00:00:00'],
]
*/
whereBetween
این متد دادههایی که بین دو مقدار خاص هستند را برمیگرداند.$collection = collect([
['product' => 'Desk', 'price' => 200],
['product' => 'Chair', 'price' => 80],
['product' => 'Bookcase', 'price' => 150],
['product' => 'Pencil', 'price' => 30],
['product' => 'Door', 'price' => 100],
]);
$filtered = $collection->whereBetween('price', [100, 200]);
$filtered->all();
/*
[
['product' => 'Desk', 'price' => 200],
['product' => 'Bookcase', 'price' => 150],
['product' => 'Door', 'price' => 100],
]
*/
جمع بندی :
در این مقاله بهطور خلاصه و کاربردی به بررسی Collectionهای موجود در لاراول پرداختیم و با این خاصیت فوقالعاده لاراول تا حدود زیادی آشنا شدیم. اگر در این مورد سوال یا نظری داشتید خوشحال میشویم که با ما و کاربران سون لرن به اشتراک بگذارید.اگر به یادگیری بیشتر لاراول علاقه دارید میتوانید در دوره آموزش لاراول کاربردی (بسته پروژه محور) شرکت کنید، این دوره شامل ۱۲ پروژه کاربردی و پر استفاده در دنیای واقعی است، که تمامی پروژهها به صورت کامل برنامه نویسی خواهند شد، تا دانشجو بتواند با روند ایجاد و تکمیل پروژه به صورت کامل آشنا شود.