如何通过laravel中的链接将数据值传递到另一页?

时间:2019-05-21 20:34:39

标签: laravel eloquent relationship

我正在尝试列出您可以租借的地点。但是要租用该地方,您需要填写一些信息。要填写此信息,您会超出另一页。我该如何做,以便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 :(得分:0)

您收到的错误是由于函数名称错误,您正在调用位置,而它是位置

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');
}