[Resuelto] El campo servicio no tiene un valor predeterminado

Publicado hace 10 meses por @frank18-kevin-at-hotmailcom

me surge un error al enviar datos por mi formulario:

SQLSTATE [HY000]: Error general: 1364 El campo 'servicio' no tiene un valor predeterminado (SQL: insertar en `clientes` (` nombre`, `apellido`,` dni`, `direccion`,` asentamientos_id`, ` valores de condicion`, `mz`,` lt`, `updated_at`,` created_at`) (AA, A, 2332, DSF, 1, SOCIO, D, 3, 2018-03-25 00:52:14, 2018- 03-25 00:52:14)

este es el formulario en el cual envio los datos

<thead>
                    <tr>
                        
                        <th>Nombre</th>
                        <th>Apellido</th>
                        <th>dni</th>
                        <th>Direccion</th>
                        <th>Asentamiento</th>
                        <th>servicio</th>
                        <th>Mz</th>
                        <th>Lt</th>
                        <th>Condicion</th>
                        <th colspan="3" align="center"><em class="fa fa-cog"></em></th>
                    </tr> 
                  </thead>
                  <tbody>
                    
                    @foreach($cliente as $client)
                <tr>
                    <td>
                          {{ $client->nombre }}
                    </td>
                    <td>
                          {{ $client->apellido }}
                    </td>
                    <td>
                        <strong>
                          {{ $client->dni }}
                        </strong>
                    </td>
                    <td>
                        <strong>
                          {{ $client->direccion }}
                        </strong>
                    </td>
                   <td>
                        <strong>
                          {{ $client->asentamiento->nombre }}
                        </strong>
                    </td>
                    <td>
                        <strong>
                          {{ $client->servicio['descripcion_servicio']}}
                        </strong>
                    </td>
                    <td>
                        <strong>
                          {{ $client->mz }}
                        </strong>
                    </td>
                    <td>
                        <strong>
                          {{ $client->lt }}
                        </strong>
                    </td>
                    <td>
                        <strong>
                          {{ $client->condicion }}
                        </strong>
                    </td>
                    <td width="10px">
                      
                        <a class="btn btn-default" title="editar" href=" {{ route('cliente.edit',$client->id) }} "><em class="fa fa-pencil"></em></a>
                    </td>
                    <td>  
                        <form action="{{ route('cliente.destroy', $client->id) }}" method="POST">
                            {{ csrf_field() }}
                            <input name="_method" type="hidden" value="DELETE">
                                <button class="btn btn-link">borrar</button>

                        </form>
                    </td>
                  </tr>
        @endforeach   
                  </tbody>

esto viene a ser el modelo clientes donde pongo los atributos de mi tabla

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Modelo_cliente extends Model
{
    protected $table    = 'clientes';
    protected $primarykey='id';
    protected $fillable = [
        'nombre',
        'apellido',
        'dni',
        'direccion',
        'asentamientos_id',
        'servicio',
        'condicion',
        'mz',
        'lt',
    ];

    public function Servicio()
    {
        return $this->belongsToMany(Modelo_servicio::class,'cliente_servicio','clientes_id','servicios_id');
    }
    public function asentamiento()
    {
        return $this->belongsto('\App\Modelo_asentamiento', 'asentamientos_id');
    }
}

esto es mi migracion de la tabla clientes

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class MigracionClientes extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('clientes', function (Blueprint $table) {
            $table->increments('id');
            $table->string('nombre',50);
            $table->string('apellido',100);
            $table->string('dni',8);
            $table->string('direccion',100);    
            $table->integer('asentamientos_id')->unsigned();
            $table->foreign('asentamientos_id')->references('id')->on('asentamientos');
            $table->integer('servicio',100);
            $table->string('mz',2);
            $table->string('lt',3);
            $table->string('condicion',30);
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('clientes');
    }
}

muchas gracias de antemano por los comentarios

Mejor respuesta Marcada por @frank18-kevin-at-hotmailcom

6-gustavo-herrera hace 10 meses

Ya vi el problema, el detalle es que tu en la tabla clientes tienes un campo llamado servicios y estoy visualizando que en el método store no estás guardando ese valor hermano, ese es el problema. debes colocarlo $client->servicios = $request->servicio creo que es así como lo tienes.