Моя база данных не принимает свойство name - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь передать "имя" в свои "друзья" через мой контроллер.
Я уже создал «имена» таблицу с именами в ней
Я продолжаю получать «Пытаюсь получить имя свойства не-объекта» Эта ошибка.

Вот мой FriendsController: -

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Friend;
use Illuminate\Support\Facades\Auth;
use App\Name;

class FriendsController extends Controller
{
    public function store(Request $request)
    {   

        $name = Name::all()->random(1)[0]->name;


        Friend::create([
            'my_id'=>Auth::user()->id,
            'friends_id'=>$request->friends_id,
            'name' => $name->name,
        ]);

        Friend::create([
            'friends_id'=>Auth::user()->id,
            'my_id'=>$request->friends_id,
            'name' => $name->name,
        ]);

        return redirect('/home');
    }
}

Вот таблица моих друзей: -

public function up()
{
    Schema::create('friends', function (Blueprint $table) {
        $table->id();
        $table->string('my_id');
        $table->string('friends_id');
        $table->string('name')->nullable();     
        $table->timestamps();
    });
}

Вот таблица моих имен: -

public function up()
{
    Schema::create('names', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->timestamps();
    });
}

Кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 26 мая 2020

'name' => $name должно быть правильным, как сказал Тим. Если он не был сохранен в вашей базе данных, это, вероятно, было связано с тем, что столбец name защищен в вашей модели.

Попробуйте добавить protected $guarded=['id']; или protected $fillable=['name']; в свою модель друга и посмотрите, работает ли это. Чтобы узнать больше об этом, вы можете проверить laravel s Mass Assignment . Ура :)

0 голосов
/ 26 мая 2020

Вот решение: -

  public function store(Request $request)
{   

    $name = Name::inRandomOrder()->first()->name;


    Friend::create([
    'my_id'=>Auth::user()->id,
    'friends_id'=>$request->friends_id,
    'name' => $name,
]);

    Friend::create([
    'friends_id'=>Auth::user()->id,
    'my_id'=>$request->friends_id,
    'name' => $name,
]);

     return redirect('/home');
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...