Я создаю систему блогов с laravel.
Теперь у меня есть таблица блоггера с именем, адресом электронной почты и паролем.
В дополнение к таблице учетной записи по умолчанию я хочу сохранить изображение профиля и введение. Они принадлежат столу блогера в моем случае. Но я не могу сохранить эти две записи.
Я не могу понять, почему записи профиля не могут быть вставлены в мою БД.
А моя роль пользователя - блоггер.
Я вижу? _Kenken на URL.
таблица блоггеров
Schema::create('bloggers', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
таблица блогов
Schema::create('blogs', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('bloggers');
$table->string('image');
$table->string('introduction');
$table->timestamps();
});
блоггер. php
public function blogs()
{
return $this->hasMany(Blog::class, 'user_id');
}
blog. php
public function user(){
return $this->belongsTo(Blogger::class, 'user_id');
}
bloggersController. php
public function store(Request $request, Blogger $blogger_id){
$blogger_id = DB::table('bloggers')->where('id', $blogger_id)->get();
Auth::guard('blogger')->user();
if($request->hasfile('image')){
$file = $request->file('image');
$ext = $file->getClientOriginalExtension();
$filename = time().'.'.$ext;
$file->move('bloggers/', $filename);
$blog = Blog::updateOrCreate(
['user_id' => $blogger_id],
[
'image'=>$filename,
'introduction' => $request->introduction,
]
);
}
return view('bloggers.create')->with('bloggers', Blogger::all())->with('blogs', Blog::all());
}
web. php
Route::get('/create', 'BloggersController@store')->name('blogs.store');
create.blade . php
<form action="{{ route('blogs.store') }}" enctype="multipart/form-data">
@csrf
<img src="{{asset('blog-image/alexandre-chambon-zxmSX2-GQBc-unsplash.jpg')}}" alt="card-background" class="card-img">
<div class="image-preview" id="imagePreview">
@if(empty(Auth::guard('blogger')->user()->blog->image))
<img src="{{asset('avatar/avatar.png')}}" id="image-preview__image" alt="avatar">
@else
<img src="{{asset('bloggers/')}}/{{ Auth::guard('blogger')->user()->blog->image}}" id="preview" alt="profile image">
@endif
</div>
<input type="text" class="name" value="{{ Auth::guard('blogger')->user()->name }}" name="name">
<textarea name="introduction" id="" cols="30" rows="10" class="profile">
@if(!empty(Auth::guard('blogger')->user()->blog->introduction)){{ Auth::guard('blogger')->user()->blog->introduction }}@endif
</textarea>
<div class="preview">
<input type="file" id="file" class="file1" accept="image/*" name="image">
<label for="file">
Add profile photo
</label>
</div>
<button type="submit" id="register">Register</button>
</form>