Laravel 难以建立拉维关系

Laravel 难以建立拉维关系,laravel,relationship,Laravel,Relationship,因此,我正在尝试将计划与当前用户关联。 我有一个叫做计划的模式和迁移。我有一个名为user的方法,我使用belongsTo()获取与该计划关联的所有用户。我不知道为什么它不起作用 模态 我从控制器调用计划模型 它显示空白 您没有加载关系。您可以使用with()来实现这一点 Post代码不是图像。没有显示任何内容,因为没有用户附加到计划。由于表计划中没有属性用户id。您如何知道每个计划属于哪个用户?您不必急于加载关系,就可以在blade中调用它。在Blade中调用属性->user,加载关系wi

因此,我正在尝试将计划与当前用户关联。 我有一个叫做计划的模式和迁移。我有一个名为user的方法,我使用belongsTo()获取与该计划关联的所有用户。我不知道为什么它不起作用 模态

我从控制器调用计划模型

它显示空白


您没有加载关系。您可以使用
with()
来实现这一点


Post代码不是图像。没有显示任何内容,因为没有用户附加到计划。由于表
计划中没有属性
用户id
。您如何知道每个计划属于哪个用户?您不必急于加载关系,就可以在blade中调用它。在Blade中调用属性
->user
,加载关系
with()
用于即时加载(仅用一个DB查询加载所有用户)。谢谢!这创造了这种关系。我的迁移中也没有指向用户id的外键。@N69S True。但是,当您通过
compact
语句传递信息时,我认为您仍然无法访问您所访问的dbqueryies,它仍然是计划实例的集合。compact不会将其转换为数组。注意语法
$plan->user
。还是个目标
namespace App\Models;

use App\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class Plan extends Model
{
    use HasFactory;
    protected $fillable = [
        'name',
        'slug',
        'stripe_plan',
        'cost',
        'description'
    ];

    public function getRouteKeyName()
    {
        return 'slug';
    }
    public function user()
    {
        return $this->belongsTo(User::class);
    }

}

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePlansTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('plans', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('slug')->unique();
            $table->string('stripe_plan');
            $table->float('cost');
            $table->text('description')->nullable();
            $table->timestamps();
        });
    }
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('plans');
    }
}