自己的预订脚本
Own booking script
我正在制作自己的预订系统,但拒绝在数据库中存储数据的主脚本无法正常工作。脚本本身:
<?php
namespace App\Http\Controllers;
use App\Rules\Taken;
use Illuminate\Http\Request;
use App\Order;
class orderController extends Controller {
// Create Contact Form
public function setOrder(Request $request) {
return view('welcome');
}
// Store Contact Form data
public function order(Request $request)
{
$request->validate([
'name' => [
'required',
],
'phone' => [
'required',
],
'orderdatestart' => [
'required', 'date_format:Y-m-d', new Taken(),
],
'orderdateend' => [
'required', 'date_format:Y-m-d', 'after:orderdatestart', new Taken(),
]
]
);
// The main script that s not working ----->
if (Order::where([
['orderdatestart', '<=', $request['orderdatestart']],
['orderdateend', '>=', $request['orderdateend']]
])) {
return "i wont let you do this >:(";
}else{
Order::create($request->all());
}
}
}
我有这个数据库架构
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateOrdersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('orders', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('phone');
$table->date('orderdatestart');
$table->date('orderdateend');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('orders');
}
}
我什至有路线,但我认为它们没有任何问题
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
// Render in view
Route::get('/', [
'uses' => 'orderController@setOrder'
]);
// Post form data
Route::post('/', [
'uses' => 'orderController@order',
'as' => 'order.store'
]);
我也可以展示模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
public $fillable = ['name', 'phone', 'orderdatestart', 'orderdateend'];
}
我标记为主要的脚本总是显示我我不会让你这样做>:(
我需要当一位访客预订了某个日期时,该日期将被阻止预订
行:
if(!empty($bookedDate and $bookedDate2)){
看起来很可疑;应该是这样的:
if(!empty($bookedDate) or !empty($bookedDate2)){
如果任一日期不为空,您要拒绝预订。
我正在制作自己的预订系统,但拒绝在数据库中存储数据的主脚本无法正常工作。脚本本身:
<?php
namespace App\Http\Controllers;
use App\Rules\Taken;
use Illuminate\Http\Request;
use App\Order;
class orderController extends Controller {
// Create Contact Form
public function setOrder(Request $request) {
return view('welcome');
}
// Store Contact Form data
public function order(Request $request)
{
$request->validate([
'name' => [
'required',
],
'phone' => [
'required',
],
'orderdatestart' => [
'required', 'date_format:Y-m-d', new Taken(),
],
'orderdateend' => [
'required', 'date_format:Y-m-d', 'after:orderdatestart', new Taken(),
]
]
);
// The main script that s not working ----->
if (Order::where([
['orderdatestart', '<=', $request['orderdatestart']],
['orderdateend', '>=', $request['orderdateend']]
])) {
return "i wont let you do this >:(";
}else{
Order::create($request->all());
}
}
}
我有这个数据库架构
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateOrdersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('orders', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('phone');
$table->date('orderdatestart');
$table->date('orderdateend');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('orders');
}
}
我什至有路线,但我认为它们没有任何问题
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
// Render in view
Route::get('/', [
'uses' => 'orderController@setOrder'
]);
// Post form data
Route::post('/', [
'uses' => 'orderController@order',
'as' => 'order.store'
]);
我也可以展示模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
public $fillable = ['name', 'phone', 'orderdatestart', 'orderdateend'];
}
我标记为主要的脚本总是显示我我不会让你这样做>:(
我需要当一位访客预订了某个日期时,该日期将被阻止预订
行:
if(!empty($bookedDate and $bookedDate2)){
看起来很可疑;应该是这样的:
if(!empty($bookedDate) or !empty($bookedDate2)){
如果任一日期不为空,您要拒绝预订。