Laravel 5.4 Probleme de clé étrangère
Bonjour a tous Donc voila je souhaite faire une relation many to many avec Laravel 5.4 J'ai donc signaler cela a ma database comme vous pouvez le voir et a mon model, Le probleme ce trouve au niveau du controler.
Les validations sont bien faite ainsi que la fonction store (Chaque champ est préciser) sauf que quand je clik sur le bonton pour envoié les informations a la bases il n'y a pas d'erreur et en plus de ça les information n'aparaisse pas dans la base de donné. Avez vous une solution ? S'il vous plait. Merci d'avance
class ThemeController extends Controller
{
public function store(Request $request)
{
$this->validate($request,[
'style' => 'min:5|max:100|string',
'description' => 'min:5|max:500|string',
'image' => '|min:5|max:2000|sometimes',
'user_id' =>'required|bigInterger'
]);
;
$theme = new Theme([
'style'=> $request->style,
'description'=> $request->description,
'image'=> $request->image,
'user_id'=>$request->user_id
]);
$theme->save();
return redirect()->back();
}
public function create()
{
return view('theme.create');
}
}
Bonjour a tous Donc voila je souhaite faire une relation many to many avec Laravel 5.4 J'ai donc signaler cela a ma database comme vous pouvez le voir et a mon model, Le probleme ce trouve au niveau du controler.
Les validations sont bien faite ainsi que la fonction store (Chaque champ est préciser) sauf que quand je clik sur le bonton pour envoié les informations a la bases il n'y a pas d'erreur et en plus de ça les information n'aparaisse pas dans la base de donné. Avez vous une solution ? S'il vous plait. Merci d'avance
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Theme;
use App\User;
class ThemeController extends Controller
{
public function store(Request $request)
{
$this->validate($request,[
'style' => 'min:5|max:100|string',
'description' => 'min:5|max:500|string',
'image' => '|min:5|max:2000|sometimes',
'user_id' =>'required|bigInterger'
]);
;
$theme = new Theme([
'style'=> $request->style,
'description'=> $request->description,
'image'=> $request->image,
'user_id'=>$request->user_id
]);
$theme->save();
return redirect()->back();
}
public function create()
{
return view('theme.create');
}
}
Model User
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'nom', 'prenom','email','adresse','telephone', 'password',
];
public function themes()
{
return $this->hasMany('App\Theme');
}
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
Model Theme
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Theme extends Model
{
protected $fillable = [ 'style','description','image','user_id'];
protected $table ='theme';
public function user()
{
return $this->belongsTo('App\User');
}
}
Base de donne
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class Theme extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('theme', function(Blueprint $table){
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->string('style');
$table->string('description');
$table->binary('image')->nullable();;
$table->timestamps();
});
Schema::table('theme',function(Blueprint $table) {
$table->foreign('user_id')->references('id')->on('users');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('theme');
}
}
View
@extends('layouts.app')
@section('content')
@if (Auth::guest())
<div>
<h1>Pour soumettre vos theme merci de vous authantifier</h1>
</div>
@else
<form class="" method="POST" action="{{ route ('theme.store')}}" enctype="multipart/form-data">
{{ csrf_field( )}}
<div>
<label>Style</label>
<input type="text" name="style" placeholder= "Choix du theme" >
</div>
<label>Image</label>
<input type="file" placeholder="image" name="image" >
<label>Description</label>
<input type="textarea" placeholder="Avez vous une idée ..." name="description" required autofocus> </input>
<button type="submit" name="soumettre">
Soumettre
</button>
</form>
@endif
@endsection
Vous ne pouvez pas répondre à ce sujet.