&の編集のための1つのメカニズムとの関係に問題があるので、シスワとテレフォンのモデルがあります。テレフォンはシスワに属しています...ここにコードは関係が非オブジェクトのプロパティを取得しようとしている
Siswa.php(モデル)
class Siswa extends Model
{
protected $table = 'siswa';
protected $fillable = [
'nisn',
'nama_siswa',
'tgl_lahir',
'jns_klmin'
];
protected $dates = ['tgl_lahir'];
public function getNamaSiswaAttribute($nama_siswa){
return ucwords($nama_siswa);
}
public function setNamaSiswaAttribute($nama_siswa){
$this->attributes['nama_siswa']=ucwords($nama_siswa);
}
public function telepon(){
return $this->hasOne('App\Telepon', 'id_siswa');
}
}
Telepon.php(モデル)
class Telepon extends Model
{
protected $table = 'telepon';
protected $primKey = 'id_siswa';
protected $fillable = [
'id_siswa',
'no_telepon',
];
public function siswa(){
return $this->belongsTo('App\Siswa', 'id_siswa');
}
}
編集及び更新機能コントローラ以下に示す:
public function edit($id){
$siswa = Siswa::findOrFail($id);
$siswa->no_telepon = $siswa->telepon->no_telepon;
return view('siswa.edit', compact('siswa'));
}
public function update(Request $request, $id){
$siswa = Siswa::findOrFail($id);
$input = $request->all();
$validator = Validator::make($input, [
'nisn'=>'required|string|size:4|unique:siswa,nisn,'.$request->input('id'),
'nama_siswa'=>'required|string|max:30',
'tgl_lahir'=>'required|date',
'jns_klmin'=>'required|in:L,P',
'no_telepon'=>'sometimes|numeric|digits_between:10,15|unique:telepon,no_telepon,'.$request->input('id').',id_siswa',
]);
if ($validator->fails()) {
return redirect('siswa/'.$id.'/edit')->withInput()->withErrors($validator);
}
$siswa->update($request->all());
$telepon = $siswa->telepon;
$telepon->no_telepon = $request->input('no_telepon');
$siswa->telepon()->save($telepon);
return redirect('siswa');
}
私は非オブジェクトエラー編集機能では、ラインのプロパティを取得しようとするとしまった "$ siswa-> no_telepon = $ siswa-> telepon-> no_teleponを;"。
編集コントローラ内で編集ビューを呼び出すと、その内部に以前に保存されたデータがあるフォームが表示されます。 no_telepon自体はSiswaではなく、Teleponテーブルからの列なので、編集目的で電話で保存されたデータを表示する方法が問題です。 FYI、createはうまく動作し、no_teleponデータはTeleponテーブルに保存されます。だから、これはどうですか?どんな助けもありがたい。
ビューの作品を、そしてもちろんteleponフォームは空です。どのようにこのApp \ Teleponを追加するには?私はすでに私のコントローラーbtwにそれを追加して、 –