未定义变量:用户(视图:/home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit.blade.php)

未定义变量:用户(视图:/home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit.blade.php),php,sql,laravel,orm,frameworks,Php,Sql,Laravel,Orm,Frameworks,首先在模型和外键中建立了拉威尔关系。我的外键是用户id 这是我的观点的一部分: <select class="form-controll" name="user_id"> @foreach($users as $user) <option value="{{$user->id}}">{{$user-&

首先在模型和外键中建立了拉威尔关系。我的外键是用户id

这是我的观点的一部分:

            <select class="form-controll" name="user_id">

                    @foreach($users as $user)

                    <option value="{{$user->id}}">{{$user->name}}</option>

                    @endforeach

            </select>

@foreach($users作为$user)
{{$user->name}
@endforeach
这是此视图的控制器方法

    <?php
        
    namespace App\Http\Controllers;
    use Kyslik\ColumnSortable\Sortable;    
    use App\Product;
    use Illuminate\Http\Request;
    use App\User;
        ...
            
        public function edit(Product $product)
        {   
            $user = User::all('name','id');
            return view('products.edit',compact('product', 'user'));
        }

...

在压缩函数中使用的是“用户”而不是“用户”。此外,变量定义为
$user
而不是
$users
。应该是这样的:

public function edit(Product $product)
{   
    $users = User::all('name','id');
    return view('products.edit',compact('product', 'users'));
}

您正在将
用户
从控制器传递到视图,而不是用户。只需将
用户
替换为
用户

public function edit(Product $product)
    {   
        $users = User::all();
        return view('products.edit',compact('product', 'users'));
    }

您没有发送$users以查看,因此您得到了需要编辑控制器并将
$user
变量重命名为
$users
的错误。这是由键入错误引起的,应该关闭。此答案与此处发布的答案有何不同?在查询中更改了一点,但OP没有询问他们的查询:)