Как передать функцию в режиме Laravel? - PullRequest
0 голосов
/ 08 марта 2019

У меня есть следующая модель курса с функцией инструкторов, и я пытаюсь передать ее на экран, чтобы я могла увидеть инструкторов для курса.

Вот моя модель функции

public function trainers()
{
    return $this->belongsToMany(User::class, 'course_user');
}

Это мой взгляд, когда я пытаюсь пройти Модельный курс и инструкторов по функциям.

<h6 class="card-subtitle text-muted">Trainer: {{$course->trainers()}}</h6>

И это ошибка, которую я получаю:

htmlspecialchars() expects parameter 1 to be string, object given (View: /Applications/MAMP/htdocs/hs-03/re Источники / просмотр / администратор / курсов / showCourse.blade.php)

Вот мой контроллер:

    public function show($id)
    {
      $created_bies = \App\User::get()->pluck('name', 'id')->prepend(trans('global.app_please_select'), '');
    $trainers = \App\User::get()->pluck('name', 'id');
    $tests = \App\Test::where('course_id', $id)->get();$lessons = \App\Lesson::where('course_id', $id)->get();
    // $date = Carbon::now();
    $date = Carbon::now()->addDays(30)->toFormattedDateString();
    $user = User::find(1);
    $user->name;

    $course = Course::findOrFail($id);

    return view('admin.courses.showCourse', compact('course', 'tests', 'lessons', 'date', 'user'));
}

1 Ответ

1 голос
/ 08 марта 2019

Это связано с тем, что методы trainers не возвращают строку.Предполагается, что такой метод, как «Определить» в вашей модели, возвращает объект Illuminate/Database/Eloquent/Relations/BelongsToMany, как вы можете видеть здесь .Ошибка в том, что вы пытаетесь показать этот объект непосредственно в шаблоне в виде строки, что невозможно.Я полагаю, вы хотите показать что-то вроде количества тренеров.Что вы можете получить как

<h6 class="card-subtitle text-muted">Trainer: {{$course->trainers()->count()}}</h6>

Это возможно, потому что метод count возвращает целое число, а не объект, такой как trainers.

С другой стороны, если вы хотите придерживатьсяПри таком использовании вы должны вставить в свой вид цикл, который будет проходить через коллекцию тренеров, которая возвращается по вызову $course->trainers()

@foreach($course->trainers() as $trainer)
    <h6 class="card-subtitle text-muted">Trainer: {{$trainer->name }}</h6>
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...