Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

552
Vistas
Error de relación uno a uno de Laravel, ¿no sé por qué?

Error al mostrar

Symfony\Component\HttpFoundation\Response::setContent(): El argumento n.º 1 ($contenido) debe ser del tipo ?string, Illuminate\Database\Eloquent\Relations\HasOne dado, llamado en G:\Laravel\practice-1\vendor \laravel\framework\src\Illuminate\Http\Response.php en la línea 72

Modelo de usuario

 <?php namespace App\Models; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable; /** * The attributes that are mass assignable. * * @var array<int, string> */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for serialization. * * @var array<int, string> */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array<string, string> */ protected $casts = [ 'email_verified_at' => 'datetime', ]; public function book() { # code... return $this->hasOne(Book::class); } }

Migración de libros

 <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateBooksTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('books', function (Blueprint $table) { $table->id(); $table->integer('user_id')->unsigned(); $table->string('title'); $table->string('abut'); $table->float('amount', 8, 2); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('books'); } }
 Route::get('/user/{id}/book', function ($id) { return User::find($id)->book(); });

No tengo idea de por qué estoy viendo este error. También miré la documentación pero no se encontró ayuda.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tus definiciones son buenas. Pero esta declaración:

 return User::find($id)->book();

devuelve un objeto Illuminate\Database\Eloquent\Relations\HasOne .

Ese no es un contenido válido para una respuesta. Intenta cambiarlo a:

 return User::find($id)->book;
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda