Php 我的数据库不是';t接受';名称';所有物
我正试图通过我的控制器在我的“朋友”中输入“姓名”Php 我的数据库不是';t接受';名称';所有物,php,laravel,controller,Php,Laravel,Controller,我正试图通过我的控制器在我的“朋友”中输入“姓名” 我已经制作了一个“名称”表,其中包含名称 我不断收到“试图获取非对象的属性“name”此错误 这是我的朋友控制器:- <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Friend; use Illuminate\Support\Facades\Auth; use App\Name; class FriendsController e
我已经制作了一个“名称”表,其中包含名称
我不断收到“试图获取非对象的属性“name”此错误 这是我的朋友控制器:-
<?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();
});
}
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');
}
}
这是我的姓名表:-
<?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();
});
}
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');
}
}
有人能帮我吗?
'name'=>$name
应该是蒂姆提到的正确的。如果未将其保存到数据库中,可能是因为模型中保护了name
列
尝试添加
protected$guarded=['id']代码>或受保护的$filleble=['name']在您的好友模型中编写>并查看是否有效。要了解更多信息,您可以查看laravel的。干杯:)这是解决方案:-
<?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();
});
}
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');
}
}
不要使用::all()
将每个名称加载到集合中,而是尝试使用名称::inRandomOrder()->first()->Name代码>。除此之外,不要使用'name'=>$name->name,
因为你已经在上面调用->name
(这是一个字符串),所以你基本上是在做'name'=>$name->name->name
,这是行不通的。'name'=>$name
。就是这样。您是否尝试使用其他属性,例如id
?您还可以共享名称表中的行吗?很高兴知道您的问题已经解决了!我鼓励你把问题的答案贴出来。太好了!因此,当有人面临同样的问题时,他/她可以找到解决方案。