データベースへのデータの挿入に問題があります。
私が今までにしたことはすべて:
次の方法で、コントローラーと移行を使用してモデルを作成します。
php artisan make:model Cars -mcr
だから、今では私のファイルはすべてこのように見えます:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Cars extends Model
{
}
<form action="{{ action('CarsController@store') }}" method="post">
{{ csrf_field() }}
<input type="text" name="brand" placeholder="Marka">
<input type="text" name="model" placeholder="Model">
<input type="text" name="doors" placeholder="Ilość drzwi">
<input type="text" name="priceHour" placeholder="Cena za godzinę">
<input type="text" name="priceDay" placeholder="Cena za dzień">
<input type="text" name="priceWeek" placeholder="Cena za tydzień">
<input type="text" name="priceMonth" placeholder="Cena za miesiąc">
<input type="text" name="priceYear" placeholder="Cena za rok">
<input type="submit" value="Osadź">
</form>
namespace App\Http\Controllers;
use App\Cars;
use Illuminate\Http\Request;
class CarsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return "test";
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$cars = new Cars;
$cars->brand = $request->input('brand');
$cars->brand = $request->input('model');
$cars->brand = $request->input('type');
$cars->brand = $request->input('doors');
$cars->priceHour = $request->input('priceHour');
$cars->priceDay = $request->input('priceDay');
$cars->priceWeek = $request->input('priceWeek');
$cars->priceMonth = $request->input('priceMonth');
$cars->priceYear = $request->input('priceYear');
$cars->save();
return redirect('admin.AddCar');
}
Route::resource('/cars', 'CarsController');
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateCarsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('cars', function (Blueprint $table) {
$table->increments('id');
$table->string('brand');
$table->string('model');
$table->string('type');
$table->integer('doors');
$table->string ('priceHour')->nullable();
$table->string('priceDay')->nullable();
$table->string('priceWeek')->nullable();
$table->string('priceMonth')->nullable();
$table->string('priceYear')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('cars');
}
}
すべてのフィールドに入力して「Osadz」をクリックした後に受信するエラー= submit is:
SQLSTATE [HY000]:一般エラー:1364フィールド 'model'にはデフォルト値がありません(SQL:
cars
(brand
、priceHour
、priceDay
、priceWeek
、priceMonth
、priceYear
、updated_at
、created_at
)値(3、3、53、3、35、3、2018-01-30 09:36:57、2018-01-30 09:36:57))
そして私の質問は、私のコードに欠けているデフォルト値は何ですか?
「モデル」
車のモデルに入力可能なフィールド「モデル」を追加する必要があります。
または、移行ファイルで最初に値を指定したくない場合は、フィールドに-> nullable()を追加できます。
皆さんありがとう、あなたは素晴らしい!
すでに問題を解決したので、ビューのフィールドを見逃しました:
<input type="text" name "type" placeholder="Typ"/>
nULLにすることはできません
そして、私はモデルを「修正」します:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Cars extends Model
{
protected $fillable = [
"brand", "model" , "type" , "doors" , "priceHour" ,
"priceDay" , "priceWeek" , "priceMonth" , "priceYear"
];
}
ありがとう。良い一日を !
テーブル内のモデル列をヌル可能として定義するか、移行ファイルでデフォルト値を指定する必要があります。エラーは、この入力が欠落していることを示しています:
<input type="text" name="model" placeholder="Model">
// examples for your migration
$table->string('model')->nullable();
// or
$table->string('model')->default('foo');
または、どちらも機能しない場合は、検証を追加して、正しいデータがコントローラーに送信されることを確認します。
コントローラでは、次のようにルールを定義できます。
$validatedData = $request->validate([
'model' => 'required|string|max:255',
'Brand' => 'required|string',
......
]);
ここで、QuartUpdatManufactursはモデル名で、値を直接挿入します。$ requestにはいくつかの値があります。
$insert_id = Module::insert("QuartUpdatManufacturs", $request);