Laravel не принимает мою базу данных

Я пытаюсь вставить записи в таблицу базы данных, но она не работает. Это работало 2 недели назад, но я, кажется, случайно что-то изменил.

моя соответствующая модель, миграция и контроллеры здесь

Модель — Profile.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Profile extends Model
{
//
protected $table='profile';

protected $fillable=['user_id', 'Gender', 'Age', 'Address'];
}

Миграция —

<?php

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

class CreateProfileTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
Schema::create('profile', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->char('Gender', 1);
$table->string('Age')->unique();
$table->string('Address');
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

Контроллер — profileController.php

<?php

namespace App\Http\Controllers;


use Illuminate\Support\Facades\Auth;
use App\Profile;
use App\Http\Requests;
use Request;
use Carbon\Carbon;
//use App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;

class profileController extends Controller
{
//
public function index(){


return view('pages.profile');
}

public function store(){
$uid=Auth::user()->id;
$input=Request::all();
$input['user_id']=$uid;
$profile = new Profile(array('user_id'=>$uid, 'gender'=>$input['gender'], 'age'=>$input['age'], 'address'=>$input['address']));
return view('welcome');
}
}

Страница с формой — pages / profile.blade.php

{!! Form::open(array('class' => 'form-horizontal col-xs-10 col-sm-6 col-md-4')) !!}
<!-- <form class="form-horizontal col-xs-10 col-sm-6 col-md-4 ">-->
<fieldset>

<!-- Form Name -->
<legend>User Profile</legend>

<!-- Multiple Radios -->
<div class="form-group">
<label class="col-md-4 control-label" for="gender">Gender</label>
<div class="col-md-4">
<div class="radio">
<label for="gender-0">
<input type="radio" name="gender" id="gender-0" value="1" checked="checked">
Male
</label>
</div>
<div class="radio">
<label for="gender-1">
<input type="radio" name="gender" id="gender-1" value="2">
Female
</label>
</div>
</div>
</div>

<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="age">Age</label>
<div class="col-md-2">
<input id="age" name="age" type="text" placeholder="Age" class="form-control input-md">

</div>
</div>

<!-- Textarea -->
<div class="form-group">
<label class="col-md-4 control-label" for="address">Address</label>
<div class="col-md-8">
<textarea class="form-control" id="address" name="address">Address</textarea>
</div>
</div>

<!-- Button -->
<div class="form-group">
<label class="col-md-4 control-label" for="submit"></label>
<div class="col-md-4">
<button id="submit" name="submit" class="btn btn-primary">Submit</button>
</div>
</div>

</fieldset>
<!--</form>-->
{!! Form::close() !!}

Также, на всякий случай, мой route.php —

Route::get('profile', 'profileController@index');
Route::post('profile', 'profileController@store');

0

Решение

При переносе вы используете имена столбцов в верхнем регистре (то есть «Пол»), тогда как вы используете строчные («пол»), когда пытаетесь заполнить модель. Кроме того, вы никогда не сохраняете свою модель:

$profile = new Profile(array('user_id'=>$uid, 'Gender'=>$input['gender'], 'Age'=>$input['age'], 'Address'=>$input['address']));
$profile->save(); // <- You need to call save() to persist the model to your database.
return view('welcome');
1

Другие решения

Под: $profile = new Profile(array('user_id'=>$uid, 'gender'=>$input['gender'], 'age'=>$input['age'], 'address'=>$input['address']));

Wrtite: $profile->save();

а действие? из {!! Form::open(array('class' => 'form-horizontal col-xs-10 col-sm-6 col-md-4')) !!}

прочитай это http://laravelcollective.com/docs/5.1/html#form-model-binding

1

По вопросам рекламы [email protected]