Laravel получает данные из внешнего ключа - PullRequest
0 голосов
/ 26 октября 2018

У меня две таблицы одна называется Submission одна называется AssignSubmission

Submission принадлежат AssignSubmission

public function assignsubmission()
{
    return $this->belongsTo('App\AssignSubmission');
}

AssignSubmission hasMany Submission

public function submissions()
{
    return $this->hasMany('App\Submission');
}

Они связаны с внешними ключами. В AssignSubmission есть id, user_id и submission_id внешний ключ - submission_id.В таблице отправки он имеет id, user_id и file, url и т. Д.

в AssignSubmission submission_id -> ссылки на -> Submission id.Я назначил разные представления для 2 пользователей.enter image description here

Как получить данные из внешнего ключа?Я хочу отобразить URL или файл в представлении

enter image description here

Ответы [ 5 ]

0 голосов
/ 26 октября 2018

Вы должны попробовать это:

Представления Модель

public function assignsubmission()
{
    return $this->hasMany('App\AssignSubmission');
}

AssignSubmission Модель

public function submissions()
{
    return $this->belongsTo('App\Submission','submission_id');
}
0 голосов
/ 26 октября 2018

Вы написали неправильные отношения. Это должно быть такмодели, так что вы можете получить как,

$submission = App\Submission::find(1)->assignSubmissions; 
$assignSubmissions = App\AssignSubmissions::find(1)->submission;

Проверьте эту ссылку для получения дополнительной справки https://laravel.com/docs/5.7/eloquent-relationships#one-to-many

0 голосов
/ 26 октября 2018

Если у вас уже есть Submission объект $submission,

$submission->assignSubmission->url даст вам URL.

Преобразуется в camalCase для имени свойства.

0 голосов
/ 26 октября 2018

Я думаю, что ваши отношения могут быть обратными?

Представление:

public function assignSubmissions()
{
    return $this->hasMany(AssignSubmission::class);
}

AssignSubmission:

public function submission()
{
    return $this->belongsTo(Submission::class);
}
0 голосов
/ 26 октября 2018

Если вы используете отношение laravel. Затем вы можете сделать это: (при условии, что ваша модель таблицы представлений называется Submission

App\Submission::with('assignsubmission')->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...