Laravel контроллер / магазин - PullRequest
1 голос
/ 11 июня 2019

Я новичок в Laravel, я пытаюсь сохранить твит в базе данных, и мне нужно вставить идентификатор пользователя, но это дает мне ошибку

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

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 11 июня 2019

Да, вы пропускаете импорт, поэтому он пытается найти его в расположении 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 голос
/ 11 июня 2019

Вы можете использовать помощник auth (), чтобы получить идентификатор пользователя:

auth()->user()->id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...