Laravel 5

Laravel 5.4 Probleme de clé étrangère

Avatar de Akira
Akira

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');
    }
}

Avatar de Akira
Akira

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');
    }
}
Avatar de Akira
Akira

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',
    ];

   
    
}

Avatar de Akira
Akira

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');
}
   
}

Avatar de Akira
Akira

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');
    }
}

Avatar de Akira
Akira

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.