我正在创建一个模仿简单酒店预订系统同时还链接到数据库的Web应用程序。我已经设置了表格并设置了正确的主/外键。在执行dd以确保我收集到数据时,id一直显示为空,这是我无法拥有的。
我确实在预订表中设置了一个外键,以确保在使用它们时都将它们链接在一起,因为customers.create表单和reservations.create表单可以在不同的表中使用。我已经尝试使用输入类型,但是仍然出现错误。我度过了美好的一天,寻找可以做什么,但是我还没有发现任何可行的方法。
我的ReservationsController中的商店功能
public function store(Request $request)
{
$data =[
$request->customer_id,
$request->room_no,
$request->start_date,
$request->end_date,
$request->category,
];
dd($data);
}
我的预订表
public function up()
{
Schema::create('reservations', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('room_no')->unsigned();
$table->foreign('room_no')->references('room_no')->on('rooms');
$table->date('start_date');
$table->date('end_date');
$table->decimal('amount')->default(0.0);
$table->bigInteger('customer_id')->unsigned();
$table->foreign('customer_id')->references('id')->on('customers');
$table->string('category');
$table->timestamps();
});
我的Reservations.create.blade表单
<form method="POST" action="/reservations/">
@csrf
<div>
<p>
<b>Enter Reservation for {{$customer->first_name}} {{$customer->last_name}}</b>
</p>
<h4 class="info-text">Select Room<br>
<select name="room_no" id="room_no">
<option value=100>100</option>
//...there are more but no need to post ALL of them here
</select>
</h4>
<h4 class="info-text">Select Room Type<br>
<select name="category" id="category">
<option value="Deluxe">Deluxe</option>
// shortened for question's sake again
</h4>
<p>
<b>Enter Start and End Date:</b>
</p>
<table>
<tr>
<td>
<input class="input" type="date" name="start_date" size="11" />
<input class="input" type="date" name="end_date" size="11" />
</td>
</tr>
</table>
<b>Cost of Stay</b>
<td>
<input class="input" type="decimal" name="amount" size="11"/>
</td>
<p><button type="submit">Create Reservation</button></p>
</div>
</form>
我可以将自己的观点与路线关联起来
Route::resource('reservations', 'ReservationsController');
Route::get('/reservations/create/{customer_id}',
"ReservationsController@create_reservation");
当我在控制器中dd时,我应该获取所有数据,包括customer_id,但是当我运行应用程序时,我将获得除customer_id以外的所有输入,在这种情况下,该值在数组中为0。
array:5 [▼
0 => null
1 => "106"
2 => "2019-04-16"
3 => "2019-04-30"
4 => "Economy"
]
我该如何解决这个问题?
答案 0 :(得分:0)
您的表单操作应类似于:
action="{{ '/reservations/' . $customer->id}}"
您需要在您的create_reservation函数中获取它,例如:
public function create_reservasion(Request $request, $customer_id)
{
...
}