我是laravel的新手,我正在尝试将推文存储到数据库中,我需要插入用户ID,但这给我一个错误
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Tweet;
class TweetController extends Controller
{
public function store(Request $request){
return Tweet::create([ 'tweet' => request('tweet'), 'user_id' => Auth::id()]);
}
}
我收到错误消息:
在文件中找不到App \ Http \ Controllers \ Auth' /Applications/AMPPS/www/Twitter/Twitter/app/Http/Controllers/TweetController.php
有什么主意吗?
答案 0 :(得分:2)
是的,您缺少导入,这就是为什么它试图在Controller
位置找到它的原因,所以放
use Illuminate\Support\Facades\Auth;
// or
use Auth; // you must have the Auth alias in the config/app.php array
作为导入,或改为使用辅助函数auth()->id()
。
因此,除了批量分配用户外,您还可以执行以下操作,在User
模型中添加以下内容:
public function tweets()
{
return $this->hasMany(Tweet::class);
}
然后在您的控制器中执行以下操作:
auth()->user()->tweets()->create([ 'tweet' => request('tweet') ]);
答案 1 :(得分:1)
您可以使用auth()帮助器获取用户ID:
auth()->user()->id