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 های موجود در لاراول پرداختیم و با این خاصیت فوق العاده لاراول تا حدود زیادی آشنا شدیم. اگر در این مورد سوال یا نظری داشتید خوشحال می شویم که با ما و کاربران سون لرن به اشتراک بگذارید.اگر به یادگیری بیشتر لاراول علاقه دارید می توانید در دوره آموزش لاراول کاربردی (بسته پروژه محور) شرکت کنید، این دوره شامل ۱۲ پروژه کاربردی و پر استفاده در دنیای واقعی است، که تمامی پروژه ها به صورت کامل برنامه نویسی خواهند شد، تا دانشجو بتواند با روند ایجاد و تکمیل پروژه به صورت کامل آشنا شود.
اشتراکگذاری:
۴ دیدگاه
نویسنده
Ali Majidi
مقاله کامل و جامعی بود ممنون
این عالی بود سپاس
صد خط توضیح نوشتید و انواع کالکشن ها رو معرفی کردید ، ولی یک خط در مورد خود کالکشن و ارتباط اش با الکوئنت رو ننوشتید!!