我正在尝试列出您可以租借的地点。但是要租用该地方,您需要填写一些信息。要填写此信息,您会超出另一页。我该如何做,以便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');
}
}
我整天都呆在这里,我真的不知道该去哪里找
答案 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');
}