Laravel $ значение запроса равно нулю - PullRequest
0 голосов
/ 11 июня 2018

Я хочу сделать выпадающее меню, в котором вы выбираете компанию, и оно показывает владельцев, которые находятся в этой компании, но когда я запрашиваю данные из моего blade.php в моем контроллере, я получаю NULL.Это мой blade.php

<form>
        <label>Company:</label>
        <select id="test" name="test" class="form-control input-sm"> 
            @foreach($companies as $company)
                <option value="{{$company->id}}">{{$company->name}}</option>
            @endforeach
        </select>
    </form>

, и это мой контроллер

public function index(Request $request)
    {       
        $companies = Company::all();
        $company_id = $request->get('company'); 
        $owners = Owner::where('company_id',$company_id)->get();  
    return view ('owners', compact('owners','companies'));
    }

, и он не показывает ни одного пользователя, но если я введу любое число вручную, как это

$company_id = 1; 

затем он показывает владельцев из компании, где ID равен 1.

ОБНОВЛЕНИЕ 2

Моя форма теперь выглядит так

<form action="{{ action('OwnerController@index') method="get"}}">

имой маршрут такой

Route::get('owners', 'OwnerController@index');

Он все тот же.

Ответы [ 3 ]

0 голосов
/ 11 июня 2018

Вам не нужна форма для заполнения выпадающего списка;Вы создаете отношения в своей модели между Компанией и Владельцем, и вам даже не нужно где, просто используйте eloquent, как этот

$owners = Owner::get();

А затем, по вашему мнению, просто получите компанию, используя eloquent:

$owner->company->name;

Вот и все!

0 голосов
/ 12 июня 2018

Как я уже говорил, мне не хватало какого-то сценария.Это решило мою проблему.

<form method="get" id="company_change">
        <label for="company">Company:</label>
        <select id="company" name="company" onchange="document.getElementById('company_change').submit()"> 
        <option value="">----Select Company-----</option>
            @foreach($companies as $company)
                <option value="{{$company->id}}">{{$company->name}}</option>
            @endforeach
        </select>
    </form>

Мой маршрут

Route::resource('owners', 'OwnerController'); 
0 голосов
/ 11 июня 2018

Не уверен, что ты хочешь.Но вот что-то для вас.

File => create.blade.php

<form action='/item' method='POST'>
    <label>Item Name:</label>
    <input type="text" name="name" class="form-control input-sm">

    <label>Company:</label>
    <select id="company" name="company" class="form-control input-sm"> 
        @foreach($companies as $company)
            <option value="{{ $company->id }}">{{ $company->name }}</option>
        @endforeach
    </select>
    <button class="btn btn-primary">Create</button>
</form>

File => ItemController.php

public function store(Request $request)
{
    try {

        $this->validate($request, [
            'company_id' => 'required',
            'name' => 'required|unique:items,name'
        ]);

        $obj = new Item();
        $obj->company_id = $request->input('company_id');
        $obj->name = $request->input('name');
        $obj->save();

        return redirect()->route('item.index')
            ->with('success', 'Create Successful');

    } catch (\Exception $ex) {

        Log::error($ex->getMessage());

        return redirect()->route('item.create')
            ->with('fail', $ex->getMessage());

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