PostController.phpユーザーと投稿の関連付けに失敗しました....!
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Tpost;
class PostController extends Controller
{
public function createUserPost(Request $request){
$this->validate($request,[
'post'=>'required'
]);
$tpost =new Tpost();
$tpost->body =$request['post'];
$message = "something wrong";
if($request->tuser()->tposts()->save($tpost)) //problem is there
{
$message = "post Successfully Submited";
}
return redirect()->route('dashboard')->with('message',$message);
}
}
Tpost.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tpost extends Model
{
//
public function tuser(){
return $this->belongsTo('App\Tuser');
}
}
Tuser.php
<?php
namespace App;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
class Tuser extends Model implements Authenticatable
{
use \Illuminate\Auth\Authenticatable;
public function tposts(){
return $this->hasMany('App\Tpost');
}
Got error: BadMethodCallException in Macroable.php line 81: Method tuser does not exist.
//私は
$tpost ->save();
//simply inserted into database //I thought I failed to make relation between Tuser and Tpost models. In PostController.php, If I do
dd($tpost->tuser());
then it returned an associative array as shown, but If dodd($request->tuser());
then it says Method tuser does not exist. please Help....
ty!それを修正しましたが、同じ問題@alex – CodeLove