【发布时间】:2020-02-01 23:03:24
【问题描述】:
我需要帮助,我正在 Laravel 做一个项目,当 T 尝试在多对多中使用数据透视表时遇到问题
在我的category modelCategory.php,我有下面的函数
public function users()
{
return $this->belongsToMany(user::class);
}
在我的user modelUser.php,我有下面的函数
public function authors()
{
return $this->belongsToMany(author::class);
}
在web.php,我有这个
Route::post('/onboarding', 'OnboardsController@categoryUser');
在我的onboarding view,我有一个表格:
<form action="{{ url('/onboarding') }}" method="POST">
@csrf
@foreach($categories as $category)
<div class="radio-item">
<input class="form control" name="category_id" type="checkbox" id="category_id" required>
<label for="name">{{ $category -> title }}</label>
</div>
@endforeach
<div class="form-row">
<div class="form-group col-md-12 text-center">
<button type="submit">Proceed to Authors</button>
</div>
</div>
</form>
在我的OnboardsController
我有这个
public function categoryUser (Request $request)
{
$user = User::findOrFail(Auth::user()->id);
$user = categories()->attach($request->input('category_id'));
return redirect ( route ('onboarding_author'));
}
这是返回的错误:
调用未定义函数 App\Http\Controllers\categories()
当我将控制器中的代码更改为
$category = Category::find($request->input('category_id'));
$user = User::where('user_id', Auth::id());
$category->users()->attach($user->id);
这是返回的错误:
调用未定义函数 App\Http\Controllers\users()
这是我的完整 OnboardsController.php 代码
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use App\Author;
use App\User;
use App\Category;
class OnboardsController extends Controller
{
public function index()
{
//
return view('onboarding')
->with('categories', Category::all());
}
public function author()
{
//
return view('onboarding_author')
->with('authors', Author::all());
}
public function categoryUser (Request $request)
{
dd(request('category_id'));
Category::findOrFail(request('category_id'))
->users()
->attach(auth()->user()->id);
return redirect ( route ('onboarding_author'));
}
请我是 Laravel 的新手,我已经用了 3 天了,我不知道如何解决这个问题。我需要帮助。
【问题讨论】:
-
发布更多关于控制器的代码。您的示例代码一无所知。
-
@Gasol 请检查我的编辑