Как передать значение данных на другую страницу по ссылке в laravel? - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь составить список мест, которые вы можете арендовать.но для аренды места нужно заполнить некоторую информацию.чтобы заполнить эту информацию, вы превышаете другую страницу.как мне сделать так, чтобы laravel знал, что страница принадлежит определенному местоположению

, это то, что я сделал сейчас, но я продолжаю получать сообщение об ошибке:

вызов неопределенного метода App \ Reservation :: location()

как только я заполнил поля информации

, это блейд-файл, который ссылается на файл создания резервирования

@foreach
($locations as $location => $data)
                            <tr>
                                <th>{{$data->id}}</th>
                                <th>{{$data->name}}</th>
                                <th>{{$data->type}}</th>
                                <th><a class="btn" href="{{route('Reservation.index', $data->id)}}">rent</a></th>
                            </tr>

@endforeach

этоблейд создания резервирования

<form action="{{ route('location.store') }}" method="post">
                        @csrf
                        <label>title</label>
                        <input type="text" class="form-control" name="name"/>
                        <label>type</label>
                        <select>
                            <option value="0">klein</option>
                            <option value="1">groot</option>
                        </select>
                        <button type="submit" class="btn">inschrijven</button>

                    </form>

так выглядит контроллер местоположения

public function store(Request $request)
    {
        $location = new Reservation;
        $location->name = $request->get('name');
        $location->type = $request->get('type');
        $location->location()->associate($request->location());

        $location->save();

        return redirect('/location');
    }

, и отношения в моих моделях также должны работать

class Reservation extends Model
{
    public function locations()
    {
        return $this->belongsTo('Location::class');
    }
}

class Location extends Model
{
    public function reservations()
    {
        return $this->hasMany('Registration::class');
    }
}

Я застрял в этом весь день, и я действительно не знаю, где искать

1 Ответ

0 голосов
/ 21 мая 2019

Ошибка, которую вы получаете из-за неправильного имени функции, вы звоните location , в то время как это location .

public function locations(){}

&

$location->location()->associate($request->location());

и вы можете передать переменную как параметр запроса, вам нужно будет передать эти данные в виде массива в вашем блейд-файле.

Web.php

Route::get('/somewhere/{id?}, function(){
  //do something
})->name('test');

лезвие

route('test', ['id' => $id]);

Метод контроллера

public function store(Request $request, $id) //Adding the query parameter for id passed in Route.
{
    $location = new Reservation;
    $location->name = $request->get('name');
    $location->type = $request->get('type');
    $location->location()->associate($id);

    $location->save();

    return redirect('/location');
}
...