идентификатор не определен на laravel контроллере - PullRequest
0 голосов
/ 18 марта 2020

У меня есть 2 раздела, которые называются Vendor и Vendor Contact. Поэтому, когда я показываю информацию о продавце, он может создавать / добавлять новые контакты. Я позвонил в VendorDetail.blade с идентификатором вендора. php вот так:

<input type="hidden" name="ven_id" value="{{$vendor->id}}">

, затем я поместил этот URL на кнопку create_contact:

<a href="{{ url('system/procurement/vendor-contact/create') }}" id="add-contact" type="button" class="btn btn-sm btn-outline-primary mb-4"><i class="simple-icon-plus"></i> Add New Contact</a>

, и это мой ContactController :

<?php

namespace App\Http\Controllers\Home\Procurement;

use App\Http\Controllers\Controller;
use App\Model\Vendors;
use App\Model\ContactPerson;
use App\Model\ItemCategory;
use App\Model\CategoryVendor;
use App\Model\Status;
use App\Model\VendorDocument;
use Illuminate\Http\Request;
use DB;

class ContactController extends Controller
{
    public function index()
    {
      return view('home.vendor.contact.add',compact('vendor'));
    }

    public function create(Request $request)
    {
      $vendor_id = $request->ven_id;
      $vendor = Vendors::find($vendor_id);
      return $vendor;
      return view('home.vendor.contact.add',compact('vendor'));
    }
}

и вот что я написал на своих маршрутах:

Route::resource('vendor-contact', 'Home\Procurement\ContactController');

, но всегда возвращает 404 | not found, что означает, что контроллер не может прочитать vendor_id. что-то не так с моим кодом?

Ответы [ 3 ]

0 голосов
/ 18 марта 2020
 $vendor = Vendors::find($vendor_id);

модель функции :: найти что-то есть проблемы. Потому что, если он не нашел сущность, возвращает 404, попробуйте

$vendor=Vendors::where('id',$vendor_id)->first();
0 голосов
/ 18 марта 2020

Вы должны передать идентификатор с href, как показано ниже:

<a href="{{ url('system/procurement/vendor-contact/create/'.$vendor->id) }}" id="add-contact" type="button" class="btn btn-sm btn-outline-primary mb-4"><i class="simple-icon-plus"></i> Add New Contact</a>

И ваш маршрут должен быть:

Route::any('vendor-contact/create/{id}', 'Home\Procurement\ContactController@create')
Route::resource('vendor-contact', 'Home\Procurement\ContactController')->except('create');

А затем контроллер:

public function create($id)
{      
  $vendor = Vendors::find($id);     
  return view('home.vendor.contact.add',compact('vendor'));
}
0 голосов
/ 18 марта 2020

Этот код

<a href="{{ url('system/procurement/vendor-contact/create') }}" id="add-contact" type="button" class="btn btn-sm btn-outline-primary mb-4"><i class="simple-icon-plus"></i> Add New Contact</a>

процесс с vuejs / ajax / js или что-то еще? или существует форма между?

Вы должны проверить свой маршрут и сделать dd($request->all());

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