Я использую Laravel 5, и у меня есть 2 таблицы:
- Таблица «Link» с 7 столбцами, один из которых - столбец «image_id».
- «Image» Таблица, в этой таблице у меня есть два столбца: «id» и «url».
Я хочу обновить базу данных Link, а также URL-адрес соответствующего изображения с помощью одного метода обновления.
Я пробовал этот код:
public function update(Request $request, $id)
{
// Validate the data
$link = Link::find($id);
$this->validate($request, array(
'title' => 'required|max:255',
'link' => 'nullable',
'description' => 'required'
));
$link = Link::find($id);
$link->title = $request->input('title');
$link->link = $request->input('link');
$link->description = $request->input('description');
$link->linkImage->url = 'testurl';
$link->save();
Session::flash('success', "Le lien à été correctement mis à jour.");
return redirect()->route('links.index');
}
Это мой класс ссылок:
<?php
namespace App\Models\Services;
use Illuminate\Database\Eloquent\Model;
class Link extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'service_rubrique_link';
protected $fillable = ['title','description','ordre','image_id'];
public function linkImage()
{
return $this->belongsTo('App\Models\Storage\Imageup');
}
}
И мой класс изображений:
<?php
namespace App\Models\Storage;
use Illuminate\Database\Eloquent\Model;
class Imageup extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'image';
protected $fillable = ['id','url'];
public function servlinks()
{
return $this->hasMany('App\Models\Services\Link');
}
}
Когда я хочу сохранить у меня эту ошибку:
Косвенное изменение перегруженного свойства
App \ Models \ Services \ Link :: $ linkImage не действует
Do Вы имеете представление о том, что не так с моим кодом?
Спасибо.