Как передать значение первичного параметра во внешний ключ, а затем использовать его для отображения информации из базы данных? - PullRequest
0 голосов
/ 31 мая 2019

Я хочу, чтобы контакты отображались в соответствии с группой. Группы, в свою очередь, отображаются в соответствии с зарегистрированным пользователем. Однако все контакты для пользователя отображаются в каждой группе, которую он создает. Это работает, когда значение жестко задано, но я хочу, чтобы значение было назначено динамически. Как это сделать?

Это групповой контроллер

class GroupController extends Controller {
public function index()
{
    $groups = Group::where('user_id',Auth::user()->id)->get();
    return view('groups.index', compact('groups'));
}
public function store(Request $request)
{
  $group = $request->all();
  $request->validate([
    'group_name'=>'required',
  ]);
  $group = new Group([
    'group_name' => $request->get('group_name'),
    'user_id' => Auth::user()->id,
  ]);
  $group->save();
  return redirect('/groups');
 }}

Это контактный контроллер

class ContactController extends Controller{
public function index(Request $request)
{
    $group_id=$request->query('id');
    $contacts = Contact::where('user_id',Auth::user()->id)->where('group_id','=','id')->get();
    return view('contacts.index', compact('contacts'));
}
public function store(Request $request)
{
  $contact = $request->all(); 
  $request->validate([
    'contact_name'=>'required',
    'contact_number'=> 'required|integer',
    'contact_email' => 'required'
  ]);
  $contact = new Contact([
    'contact_name' => $request->get('contact_name'),
    'contact_number'=> $request->get('contact_number'),
    'contact_email'=> $request->get('contact_email'),
    'user_id' => Auth::user()->id,
    'group_id'=> $request->query('id'),
  ]);
  $contact->save();
  return redirect('/contacts');
}}

Это миграция для контактов.

class CreateContactsTable extends Migration{
public function up()
{
    Schema::create('contacts', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id')->unsigned();
        $table->integer('group_id')->unsigned();
        $table->string('contact_name');
        //$table->string('contact_number');
        $table->string('contact_email');
        $table->string('contact_number')->nullable();
        $table->timestamps();
    });

    Schema::table('contacts', function($table) {
        $table->foreign('user_id')->references('id')->on('users');
        $table->foreign('group_id')->references('id')->on('groups');
    });}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...