Laravel: используйте модель для возврата строки базы данных на основе связанной таблицы. - PullRequest
0 голосов
/ 07 сентября 2018

Мне нужно использовать мою модель Website, чтобы получить строку из моей базы данных в таблице websites, однако эта строка идентифицируется через мою таблицу domains.

Так что в принципе было бы здорово сделать запрос к моей таблице domains и сопоставить строку, а затем получить строку website из таблицы websites, используя столбец website_id.

Но я хочу просто передать эти данные в мой контроллер, просто ссылаясь на модель внутри метода.

class WebsiteController extends Controller {

        public function index(Website $website) {

            print_r($website);

            return view('index');

        }

    }

Таблица моих доменов:

CREATE TABLE `domains` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `website_id` INT(11) NOT NULL DEFAULT '0',
    `domain` VARCHAR(255) NOT NULL DEFAULT '0',
    `active` INT(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`),
    INDEX `website_id` (`website_id`),
    CONSTRAINT `website_id` FOREIGN KEY (`website_id`) REFERENCES `websites` (`id`)
)
COMMENT='This table will contain all of the domains registered on MarvWeb, this will link to the website record. '
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=3;

И таблица сайтов:

CREATE TABLE `websites` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(255) NULL DEFAULT NULL,
    `tagline` VARCHAR(255) NULL DEFAULT NULL,
    `description` VARCHAR(255) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COMMENT='This table will contain all the websites data. '
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=2;

Имеет ли это смысл?

1 Ответ

0 голосов
/ 07 сентября 2018

Добавьте функцию веб-сайта в модель вашего домена.

class Domain extends Model{
    public function website(){
        return $this->hasOne('App\Website');
    }
// remainder of model.
}

Когда вы получаете результаты запроса Домена, веб-сайт может быть доступен по

print_r($domainRowResult->$website->tagline);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...