【发布时间】:2021-09-19 21:28:31
【问题描述】:
我知道以前有人问过这个问题。我看过问题和答案,但找不到我可以从中获得帮助的东西。
我正在尝试将简单数据传递到我的数据库中。到目前为止,一切都很好。 我相信当我尝试添加用户 ID 时会出现我的问题,因为它必须从 Auth 中提取。所以这是我的控制器代码。
side node ,userID 来自名为 users 的外部表。 userID 将用作外键。在用户表中它称为“id”
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ShopController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('/shop/addShop');
}
protected function validator(array $data)
{
return Validator::make($data, [
'userid' => ['required', 'string', 'max:255'],
'shopname' => ['required', 'string', 'max:255'],
'address' => ['required', 'string', 'max:255'],
'postal' => ['required', 'string', 'max:255'],
'city' => ['required', 'string', 'max:255'],
'phone' => ['required', 'string', 'max:255'],
]);
}
/**
* Add Users shop after a validation check.
*
* @param array $data
* @return \App\
*/
protected function create(array $data)
{
$userId = Auth::id();
return User::create([
'userid'=> $data[$userId],
'shopname' => $data['shopname'],
'address' => $data['address'],
'postal' => $data['postal'],
'city' => $data['city'],
'phone' => $data['phone'],
]);
}
}
在这里你可以看到我的路线。
<?php
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::post('/addShop', 'ShopController@create')->name('addShop');
Route::get('/addShop', 'ShopController@index')->name('addShop');
【问题讨论】:
-
尝试将protected function create(array $data)改为protected function create(Request $data)
-
这样做会引发以下错误: "Class 'App\Http\Controllers\Auth' not found" 。我不允许从另一个控制器调用 Auth 吗?
-
将
use Auth;添加到您的班级或将Auth::id()替换为auth()->user()->id。 -
是的,所以一个新的错误,现在它无关我在这里得到一个错误。 return user ::create([ .errror -> Class 'App\Http\Controllers\User' not found" 所以是的,它找不到用户.. 我应该在那里添加什么?
-
将
App\User添加到您的班级。