У многих есть отношение Foreach Неопределенная переменная в LARAVEL - PullRequest
0 голосов
/ 26 апреля 2019

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

Модель пользователя

public function indicator(){
    // this is one to many relationship
    return $this->hasMany(Indicator::class);
}

Модель индикатора

class Indicator extends Model
{
    protected $table = 'indicators';
    public $primaryKey = 'id';
    public $timestamp = true;  

    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

HomeController

public function index()
{
    $indicators =User::find(1)->indicator;
    return view('pages.index', compact('indicators'));
}

pages.index

@include('layouts.template')

@include('main.carousel')
@include('main.cards')
@include('main.trades')
@include('main.pillars')
@include('main.services')
@include('partials.footer')

@foreach ($indicators as $indicator)
    <h4>{{$indicator->indicator_img}}</h4>
@endforeach

Ошибка

"Неопределенная переменная: индикаторы (Просмотр:/opt/lampp/htdocs/ecommerceindicator/resources/views/pages/index.blade.php)"

но если я запускаю на своем терминале php ремесленник, использующий это приложение \ User :: find(2) -> индикатор я могу получить данные из моих таблиц

Ответы [ 3 ]

0 голосов
/ 26 апреля 2019

это может сработать для вас ..

public function index()
{
    $indicators =User::find(1)->indicator;
    $data = [];
    $data['indicators'] = $indicators;

    return view('pages.index', $data); // or return view('pages.index')->with($data);
}
0 голосов
/ 26 апреля 2019

Привет, ребята, я уже решил ошибку, проблема в web.php, спасибо за ответ на мой вопрос

Route::get('/homepage', 'HomeController@index');
Route::get('/homepage', 'PagesController@index');
Route::resource('indicators', 'IndicatorsController');
Route::resource('ebooks', 'EbooksController');
Route::get('/addIndicator', 'PagesController@addindicator');

проблема в том, что URL-адрес такой же, поэтому я изменил его

Route::get('/homepage', 'HomeController@index');
Route::get('/indi', 'PagesController@index1');
Route::resource('indicators', 'IndicatorsController');
Route::resource('ebooks', 'EbooksController');
Route::get('/addIndicator', 'PagesController@addindicator');

0 голосов
/ 26 апреля 2019

Укажите внешний ключ и локальный ключ в отношении. как это return $this->hasOne('App\Phone', 'foreign_key', 'local_key'); для более подробной информации https://laravel.com/docs/5.8/eloquent-relationships#one-to-many-inverse

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