Отображение пустого после использования eloquent un laravel - PullRequest
0 голосов
/ 02 марта 2019

У меня есть MyRoom.php и TotalCity.php в моем проекте, в котором каждая комната классифицируется внутри города

, так что я сделал это в MyRoom.php

public function location()
{
    return $this->belongsTo(TotalCity::class, 'location_id')->withTrashed();
}

, и ясделал это в TotalCity.php

public function location()
{
    return $this->hasMany(MyRoom::class , 'total_city_id')->withTrashed();
}

Я передал идентификатор с маршрутами и контроллером, как этот home.blade.php id)}} "> {{$ row-> name}}

web.php

Route::get('/city/{id}/rooms/','SiteController@room')->name('room');

SiteController.php

public function room($id) {
    $room = TotalCity::find($id)->location;
    return view('frontend.pages.rooms', compact('room'));
}

rooms.blade.php

@foreach($room as $row)
        <div class="room">
            <a href="{{ route('description',$row->id) }}"><img src="{{ asset(env('UPLOAD_PATH').'/' . $row['photoi1']) }}"/></a>
        </div>
        @endforeach

Но в этом городе нет номеров, покав моей базе данных хранятся города и комнаты, которые относятся к конкретному городу.

Ответы [ 3 ]

0 голосов
/ 02 марта 2019

foreignKey в модели TotalCity неверен:

public function location(){
    return $this->hasMany(MyRoom::class, 'location_id')->withTrashed();
}
0 голосов
/ 02 марта 2019

Я настоятельно рекомендую вам изменить названия вашей модели на Город и Номер .Если вы не хотите этого, убедитесь, что в обеих моделях вы подключаете их к правильной таблице, вы можете добиться этого с помощью переменной $table в обеих моделях, например:

$table = 'your_table_name';

Это сделаетубедитесь, что таблица подключена правильно.

Кроме того, вы должны внести несколько изменений:

В вашей модели TotalCity сделайте следующее:

public function rooms()
{
    return $this->hasMany(MyRoom::class , 'total_city_id')->withTrashed();
}

В вашей MyRoom модели сделайте это:

public function city()
{
    return $this->belongsTo(TotalCity::class)->withTrashed();
}

В вашем SiteController сделайте это:

public function room($id) {
    $rooms = TotalCity::find($id)->rooms;
    return view('frontend.pages.rooms', compact('rooms'));
}

В вашем Просмотр

@foreach($rooms as $room)
        <h2>{{$room->name}}</h2>
        <div class="room">
            <a href="{{ route('description',$room->id) }}"><img src="{{ asset(env('UPLOAD_PATH').'/' . $room['photoi1']) }}"/></a>
        </div>
@endforeach
0 голосов
/ 02 марта 2019

В методе отношений вы должны также упомянуть внешний ключ и ключ владельца, например, в MyRoom.php:

public function location()
{
    return $this->belongsTo(TotalCity::class, 'location_id', 'total_city_primary_key')->withTrashed();
}

вы можете прочитать документация laravel для более подробной информации.

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