Как сделать модель без базы данных двумя атрибутами в Laravel - PullRequest
0 голосов
/ 06 ноября 2018

Я новичок в Ларавеле. Пожалуйста, ведите меня.

Порт - это модель, а координаты - не модель базы данных. В модели порта есть 2 поплавка (lat and long). Когда порт загружается из базы данных, 2 числа с плавающей точкой приводятся к объекту Coordinates.

Мой первый вопрос: как создать модель без базы данных с двумя атрибутами?

Мой второй вопрос: как создать объект с плавающей точкой 2 в модели порта с объектом Coordinates?

Вот моя модель координат кода Модель без базы данных с двумя атрибутами

class Coordinates extends Model
{

//Add attribute
protected $attributes = ['latitude', 'longitude'];
}

а вот модель порта с

class Port extends Contracts\AppModel
 {
    protected $coordinates = Coordinates::class;

    protected $fillable=[
        'un_latitude',
        'un_longitude',
    ];

    function __construct(array $attributes = array())
    {
         $this->coordinates = Coordinates::class;
         $this->coordinates->latitude = $attributes["un_latitude"];
         $this->coordinates->longitude = $attributes["un_longitude"];
    }

}

1 Ответ

0 голосов
/ 14 ноября 2018

Насколько я понимаю, каждая модель Eloquent должна быть связана с одной таблицей в базе данных. Вместо этого просто добавьте latitude и longitude в качестве столбцов в вашей миграции , чтобы создать таблицу port.

...