Size: a a a

Laravel для начинающих

2021 January 26

AB

Artem Borovinskiy in Laravel для начинающих
ну я так хотел
источник

AH

Andrey Helldar in Laravel для начинающих
Artem Borovinskiy
да не суть мне то нужно использовать именно результат этого ресурса
Чувак, сколько раз объяснять - ОН. ТАК. НЕ. РАБОТАЕТ.
источник

AB

Artem Borovinskiy in Laravel для начинающих
Andrey Helldar
$request->all()['currencyType']

бляяяяя

$request->get('currencyType') для кого придумали?
понял
источник

D

DK in Laravel для начинающих
Artem Borovinskiy
да не суть мне то нужно использовать именно результат этого ресурса
никак
источник

AH

Andrey Helldar in Laravel для начинающих
Artem Borovinskiy
понял
Читай внимательно https://t.me/laravel_web/462138
источник

D

DK in Laravel для начинающих
вангую нужен map\transform
источник

AB

Artem Borovinskiy in Laravel для начинающих
ну ладно тогда придётся подругому сделать не так как хотел но тоже вариант
источник

AB

Artem Borovinskiy in Laravel для начинающих
понял вас
источник

AH

Andrey Helldar in Laravel для начинающих
DK
вангую нужен map\transform
Всё ещё хуже - он создаёт ресурс внутри сервиса и хочет к нему иметь доступ из другого ресурса.
источник

D

DK in Laravel для начинающих
))))))
источник

AB

Artem Borovinskiy in Laravel для начинающих
кто запретил стикеры
источник

AH

Andrey Helldar in Laravel для начинающих
Artem Borovinskiy
ну ладно тогда придётся подругому сделать не так как хотел но тоже вариант
Не "тоже вариант", а единственный верный.
источник

AB

Artem Borovinskiy in Laravel для начинающих
ладно спасибо за советы я понял что подход был неверный
источник

D

DK in Laravel для начинающих
Artem Borovinskiy
кто запретил стикеры
источник

AB

Artem Borovinskiy in Laravel для начинающих
ладно видимо мне лишь гитлера забанили
источник

AB

Artem Borovinskiy in Laravel для начинающих
спс пойду делать иначе
источник

AH

Andrey Helldar in Laravel для начинающих
Artem Borovinskiy
сервис
$newVariation = new ProductVariationResource(ProductVariation::where('id', $product['productVariation']['id'])->first());

ресурс

public function toArray($request)
   {
       $price = $this->product_stores()->first()->price ?? 0;

       $prices = Money::getConvertPrice($request->all()['currencyType'], $price);

       return [
           'id'                  => $this->id,
           'name_fstek'          => $this->name_fstek,
           'weight'              => $this->weight,
           'length'              => $this->length,
           'width'               => $this->width,
           'height'              => $this->height,
           'price'               => $prices['price'],
           'price_string'        => $prices['price_string'],
           'product_id'          => $this->product_id,
//            'product_store'       => new ProductStore($this->product_stores->first()),
           'product_items'       => new ProductItems($this->items->first()),
       ];
   }
// controller
class ProductVariationController extends Controller
{
   public function index(ProductVariation $variation)
   {
       return ProductVariationResource::make($variation);
   }
}


// resource
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Arr;

class ProductVariationResource extends JsonResource
{
   public function toArray($request)
   {
       $prices = $this->prices($request);

       return [
           'id'         => $this->id,
           'name_fstek' => $this->name_fstek,
           'weight'     => $this->weight,
           'length'     => $this->length,
           'width'      => $this->width,
           'height'     => $this->height,

           'price'        => Arr::get($prices, 'price'),
           'price_string' => Arr::get($prices, 'price_string'),

           'product_id' => $this->product_id,

           'product_items' => ProductItemResource::collection($this->items),
       ];
   }

   protected function price(): int
   {
       return $this->product_stores()->first()->price ?? 0;
   }

   protected function prices($request): array
   {
       return Money::getConvertPrice($request->get('currencyType'), $this->price());
   }
}
источник

AB

Artem Borovinskiy in Laravel для начинающих
Andrey Helldar
// controller
class ProductVariationController extends Controller
{
   public function index(ProductVariation $variation)
   {
       return ProductVariationResource::make($variation);
   }
}


// resource
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Arr;

class ProductVariationResource extends JsonResource
{
   public function toArray($request)
   {
       $prices = $this->prices($request);

       return [
           'id'         => $this->id,
           'name_fstek' => $this->name_fstek,
           'weight'     => $this->weight,
           'length'     => $this->length,
           'width'      => $this->width,
           'height'     => $this->height,

           'price'        => Arr::get($prices, 'price'),
           'price_string' => Arr::get($prices, 'price_string'),

           'product_id' => $this->product_id,

           'product_items' => ProductItemResource::collection($this->items),
       ];
   }

   protected function price(): int
   {
       return $this->product_stores()->first()->price ?? 0;
   }

   protected function prices($request): array
   {
       return Money::getConvertPrice($request->get('currencyType'), $this->price());
   }
}
стало сложнее но прикольнее понял это дедовские способы тип везеде функции итд надо будет в один день так же пилить
источник

AH

Andrey Helldar in Laravel для начинающих
Artem Borovinskiy
стало сложнее но прикольнее понял это дедовские способы тип везеде функции итд надо будет в один день так же пилить
Это не "дедовские", а обычный SOLID - 1 метод === 1 действие. Называется "принцип единой ответственности".
источник

AB

Artem Borovinskiy in Laravel для начинающих
ух страшно
источник