LARAVEL 5.5 - Insérer des Données dans une Base de données de FORMULAIRE avec Éloquent Modèle
J'ai un problème avec l'insertion de Données dans la Base de données.
Tout ce que j'ai fait jusqu'à présent est :
De créer un Modèle avec le Contrôleur et la Migration via:
php artisan make:model Cars -mcr
Alors, maintenant, tous mes fichiers regarde de cette façon :
Voitures - Modèle
namespace App;
use Illuminate\Database\Eloquent\Model;
class Cars extends Model
{
}
AddCar.blade.php - Vue
<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>
CarsController - Contrôleur
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');
}
web.php - Routage
Route::resource('/cars', 'CarsController');
Migration
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');
}
}
D'erreur que je reçois après le remplissage de tous les champs et cliquez sur "Osadz" = submit est:
SQLSTATE[HY000]: General error: 1364 Champ "modèle" n'a pas un
la valeur par défaut (SQL: insert intocars
(brand
,priceHour
,
priceDay
,priceWeek
,priceMonth
,priceYear
,updated_at
,
created_at
) valeurs (3, 3, 53, 3, 35, 3, 2018-01-30 09:36:57,
2018-01-30 09:36:57))
Et ma question est, quel est la valeur par défaut est manquant dans mon code ?
Vous devez vous connecter pour publier un commentaire.
"modèle"
Vous devez ajouter le champ "modèle" dans vos Voitures du Modèle, les champs remplissables.
Ou si vous ne voulez pas lui donner une valeur au premier abord, dans la migration de fichier, vous pouvez ajouter ->nullable() pour le domaine.
Merci les gars, vous êtes génial !
Déjà résolu le problème, j'ai raté le champ dans la Vue :
qui ne peut pas être NULL
et j'ai "corrigé" le modèle avec :
Merci et bonne journée !
Vous avez besoin pour définir le modèle de la colonne de votre tableau soit nullable ou de lui donner une valeur par défaut dans le fichier de migration. L'erreur est d'énoncer cette entrée est manquant:
Sinon, si aucun de ces travaux, puis ajouter la validation pour s'assurer de la correcte des données sont envoyées à votre contrôleur.
Dans votre contrôleur, vous pouvez définir les règles de la sorte: