У меня есть две модели:
class Musician extends Model
{
public function instruments()
{
return $this->belongsToMany('App\Instrument', 'musicians_instruments');
}
}
и
class Instrument extends Model
{
public function musicians()
{
return $this->belongsToMany('App\Musician', 'musicians_instruments');
}
}
Сохранение в базе данных работает нормально, как я хочу. У меня есть 3 таблицы в базе данных:
musicians
instruments
musicians_instruments (pivot table)
инструменты - пример содержимого:
id name
1 guitar
2 piano
3 keyboard
4 DJ
Когда музыкант регистрируется, он может выбрать от 1 до 3 инструментов, на которых он играет. Например, когда он выбирает гитару (1) и клавиатуру (3) в сводной таблице, мы имеем (допустим, у музыканта есть идентификатор 2):
musicians_instruments
musician_id instrument_id
2 1
2 3
Мой вопрос - пожалуйста, помогите мне, как написать запрос, чтобы получить все инструменты, на которых играет музыкант. Если Джо выберет 1, 3, как взять все названия инструментов, которые он выберет.
ниже - MusicianController:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Musician;
use Illuminate\Support\Facades\Hash;
class MusicianController extends Controller
{
public function index()
{
$musicians = Musician::all(); // it's for other musicians data
$musician = Musician::with('instruments')->find($musician_id);
return view('musicians', compact('musicians', 'musician'));
}