0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: laravel, отношения, one of many</p>
1
<p>Теги: laravel, отношения, one of many</p>
2
<p>Начиная с версии 8.42,<strong>Laravel</strong>стал поддерживать новые Eloquent-отношения "Один из многих" ("<strong>One of Many</strong>"). Давайте посмотрим, как это реализовано.</p>
2
<p>Начиная с версии 8.42,<strong>Laravel</strong>стал поддерживать новые Eloquent-отношения "Один из многих" ("<strong>One of Many</strong>"). Давайте посмотрим, как это реализовано.</p>
3
<p>В первую очередь стоит сказать, что новшество появилось благодаря<a>вот этому</a>пул-реквесту.</p>
3
<p>В первую очередь стоит сказать, что новшество появилось благодаря<a>вот этому</a>пул-реквесту.</p>
4
<p>Вообще, само по себе отношение Один-из-многих позволяет создавать связь Один-к-одному из отношений Один-ко-многим. К примеру:</p>
4
<p>Вообще, само по себе отношение Один-из-многих позволяет создавать связь Один-к-одному из отношений Один-ко-многим. К примеру:</p>
5
<p>• "первый вход в систему"; • "последний вход в систему"; • цена на продукт (получение актуальной цены товара).</p>
5
<p>• "первый вход в систему"; • "последний вход в систему"; • цена на продукт (получение актуальной цены товара).</p>
6
<p>На практике все это реализуется фильтрацией пересечения отношений, которые заджоинены сами с собой. Давайте покажем это на примере запроса из пул-реквеста:</p>
6
<p>На практике все это реализуется фильтрацией пересечения отношений, которые заджоинены сами с собой. Давайте покажем это на примере запроса из пул-реквеста:</p>
7
<p>В нашем примере модель User характеризуется множеством входов в систему. Ниже - код, задающий отношения Один-из-многих:</p>
7
<p>В нашем примере модель User характеризуется множеством входов в систему. Ниже - код, задающий отношения Один-из-многих:</p>
8
<p>Еще ниже - интерфейс, который связан с<strong>ofMany</strong>:</p>
8
<p>Еще ниже - интерфейс, который связан с<strong>ofMany</strong>:</p>
9
<p>При этом пул-реквест состоит из 2-х вспомогательных методов, что обеспечивает большую выразительность:</p>
9
<p>При этом пул-реквест состоит из 2-х вспомогательных методов, что обеспечивает большую выразительность:</p>
10
<p>Получить дополнительную информацию можете<a>по ссылке</a>на сам пул-реквест. В частности, в описании вы найдете недостатки применения<strong>hasOne</strong>для данного типа отношений, то есть нужно понимать, когда стоит применять этот тип отношений, а когда нет. Есть и примеры с ofMany():<a>cbl/laravel-one-of-many</a>, где особое внимание стоит уделить модели User.</p>
10
<p>Получить дополнительную информацию можете<a>по ссылке</a>на сам пул-реквест. В частности, в описании вы найдете недостатки применения<strong>hasOne</strong>для данного типа отношений, то есть нужно понимать, когда стоит применять этот тип отношений, а когда нет. Есть и примеры с ofMany():<a>cbl/laravel-one-of-many</a>, где особое внимание стоит уделить модели User.</p>
11
<p><em>Источник: https://laravel-news.com/one-of-many-eloquent-relationship</em>.</p>
11
<p><em>Источник: https://laravel-news.com/one-of-many-eloquent-relationship</em>.</p>
12
12