Для создания класса модели в Laravel необходимо выполнить следующие шаги:
1. Создайте новый файл в директории `app/Models` с названием, соответствующим названию вашей модели, например `Product.php`.
2. В файле `Product.php` определите класс модели, унаследованный от базового класса модели Laravel `Illuminate\Database\Eloquent\Model`. Внутри класса определите свойства, представляющие таблицу базы данных и ее столбцы:
```php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $table = 'products';
protected $fillable = ['name', 'price', 'description'];
}
```
3. Теперь ваш класс модели `Product` готов к использованию в Laravel.
Чтобы создать класс `ProductData` для передачи информации о товарах в заказе вместе с остальными данными в `OrderData`, можно использовать следующий подход:
1. Создайте новый файл в директории `app/Data` с названием, например `ProductData.php`.
2. В файле `ProductData.php` определите класс, содержащий свойства для хранения информации о товаре, например:
```php
namespace App\Data;
class ProductData
{
public $productId;
public $quantity;
}
```
3. Далее в классе `OrderData` добавьте зависимость на класс `ProductData`:
```php
namespace App\Data;
class OrderData
{
public $customerName;
public $products = [];
public function addProduct(ProductData $product)
{
$this->products[] = $product;
}
}
```
4. Теперь вы можете создавать объекты класса `ProductData`, заполнять их информацией о товарах и передавать их в объекты класса `OrderData` при необходимости:
```php
$productData = new ProductData();
$productData->productId = 1;
$productData->quantity = 2;
$orderData = new OrderData();
$orderData->customerName = 'John Doe';
$orderData->addProduct($productData);
```
Таким образом, вы можете удобно передавать информацию о товарах в заказе, используя классы `ProductData` и `OrderData`, вместо передачи массива как параметра метода контроллера.