私は8つの異なるフォームがすべて私のデータベースの同じ「ユーザー」テーブルを更新する予定のプロジェクトを持っています。私は、ユーザー認証が動作していると私のlocalhostのmysqlデータベース上のテーブル内のユーザーになります。しかし、私がテーブルを更新し始めると、電子メールが一意でないか、HTTPエラーやRouteDependencyResolverTrait.Rif ReflectionExceptionのエラーではありません。内部エラー:デフォルト値の取得に失敗しました。 私はすべてを試しましたが、私の作成は動作しますが、新しい行を作成し、ユーザーがサインインしている既存の行を更新しません。私のフォームがデータベースの値を更新しない理由を理解できません
私はLaravel 5.4を初めて習得し、すべてのLaracastを終えてしまったので、私は何をすべきかについてまったく困惑しています。
誰でも考えを持っているか、それを修正する方法や改善する方法を知っていますか?私が何かを見逃してしまった場合は教えてください。私は2日間この作業をしようとしています。
Basics.php
<?php
namespace App;
class Basics extends Model
{
public $table = "users";
protected $fillable = [
'family_name',
'given_names'
];
}
BasicsController.php
class BasicsController extends Controller
{
public function index()
{
$user = \Auth::user();
return view('/details/basics', compact('user'));
}
public function update(Request $request, $id)
{
$basics = Basics::find($id);
$basics->family_name = $request->input('family_name');
$basics->given_names = $request->input('given_names');
$basics->save();
return redirect("/details/basics");
}
}
basics.blade.php
@extends ('layouts/app')
@section ('content')
{{--Do @includes for all form components with the components file--}}
@include ('layouts/header')
<main class="main">
<form action="/details/basics" method="POST">
<input type="hidden" name="_method" value="PATCH">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<label>Family name</label>
<input type="text" name="family_name" placeholder="Family name" value="{{ old('family_name') }}" />
</fieldset>
<fieldset>
<label>Given names</label>
<input type="text" name="given_names" placeholder="Given names" value="{{ old('given_names') }}" />
</fieldset>
<button type="submit" value="Save" name="save" class="button button-primary button-wide">Save</button>
</form>
</main>
@endsection
web.php
Route::get('/', function() {
return view('welcome');
});
// Authentication Routes
Auth::routes();
Route::get('/logout', 'Auth\[email protected]');
Route::get('/home', '[email protected]');
Route::get('/dashboard', function() {
$user = Auth::user();
return view('dashboard', compact('user'));
});
// Eligibility Assessments
Route::get('/assessment/student', '[email protected]');
Route::post('/assessment/results', '[email protected]');
// Details
Route::get('/details/basics', '[email protected]');
Route::patch('/details/basics', '[email protected]');
/laravelの 'make:auth'を使用していますか?あなたは 'email'フィールドをテーブルに持っていますか? –
はい私はmake:authを使用しており、テーブルに電子メールの列があります – aszet