私はこの質問をはっきりと書くつもりです。これまでのように、私は有用な回答を得ていません。人々は私のAuth :: user()がnullであると思っているようです。あるいは何かを間違って設定しています。私はあなたがそうでないことを保証することができます。Laravel hasOne関係がddでnullを返す
私は最近Laravel 5.3でアプリケーションをコード化し、今 Laravel 5.4 にスクラッチを開始していると私は動作するように簡単なhasOneの関係を取得しようとしています。
テーブルusers
の各レコードのレコードを保持するテーブルがsrp_user_statistics
であり、そのユーザーの統計情報が保持されています。表users
の主キーはid
で、テーブルsrp_user_statistics
の主キーは、私はuser_id
はので、この場合には、テーブルusers
の列id
に等しいテーブルsrp_user_statistics
にユーザーレコードを取得しようとしていますuser_id
あるAuth::user()->id
この関係は、Laravel 5.3では完全に機能しましたが、Laravel 5.4では機能していないようです。私がチェックしたことの下に、私が他のフォーラムサイトで尋ねた以前の質問のようなものを仮定するのを避けるためにリストアップします。
認証::ユーザーは、()はnull、それが44個の属性やっていない場合:
dd(Auth::user());
がどのように関係がnullである知っているのですか?私はそれをどのようにチェックするのですか?したがって、最初に、私はこれをやったときに私のブレードビューhome.blade.php
に{{ Auth::user()->roleplay->user_id }}
を使用して列を印刷しようとすることで、それをチェックしTrying to get property of non-object
がどのように「それはにISN知っていることを示すlaravelによってエラーページで私を迎えています
その列だけ?
私はdd(Auth::user()->roleplay)
を行なったし、それはここでnull
を返されたが、私のPlayer.phpあり、ここではテーブルuser
<?php
namespace App\Database\Frontend\User;
use Hash;
use Eloquent;
use \Illuminate\Auth\Authenticatable;
use \Illuminate\Contracts\Auth\Authenticatable as Authentication;
class Player extends Eloquent implements Authentication
{
use Authenticatable;
protected $primaryKey = 'id';
protected $table = 'users';
public $timestamps = false;
protected $fillable = [];
public function setPasswordAttribute($value)
{
$this->attributes['password'] = Hash::make($value);
}
public function setUsernameAttribute($value)
{
return $this->attributes['username'] = $value;
}
public function roleplay()
{
return $this->hasOne('App\Database\Frontend\User\Roleplay', 'user_id');
}
}
を制御するクラスは私のRoleplay.php、テーブルを制御するクラスですsrp_user_statistics
<?php
namespace App\Database\Frontend\User;
use Eloquent;
class Roleplay extends Eloquent
{
protected $primaryKey = 'user_id';
protected $table = 'srp_user_statistics';
public $timestamps = true;
protected $guarded = ['user_id'];
public function user()
{
return $this->belongsTo('App\Database\Frontend\User\Player', 'user_id', 'id');
}
public function government_role()
{
return $this->belongsTo('App\Database\Frontend\Roleplay\GovernmentRole', 'government_id');
}
}
エラーログは次のとおりです。whe nはそれは私が他に何を試してみましたTrying to get property of non-object
in HomeController.php line 16
at HandleExceptions->handleError(8, 'Trying to get property of non-object', 'C:\\rcms_r\\app\\Http\\Controllers\\Frontend\\User\\HomeController.php', 16, array()) in HomeController.php line 16
at HomeController->getView()
at call_user_func_array(array(object(HomeController), 'getView'), array()) in Controller.php line 55
at Controller->callAction('getView', array()) in ControllerDispatcher.php line 44
at ControllerDispatcher->dispatch(object(Route), object(HomeController), 'getView') in Route.php line 203
at Route->runController() in Route.php line 160
at Route->run() in Router.php line 559
at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in SubstituteBindings.php line 41
at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Authenticate.php line 43
at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 65
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Router.php line 561
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520
at Router->dispatchToRoute(object(Request)) in Router.php line 498
at Router->dispatch(object(Request)) in Kernel.php line 174
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ValidatePostSize.php line 27
at ValidatePostSize->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53
を表示しますか?
リレーションのパラメータを変更、削除、追加、変更しようとしましたが、このリレーションシップが機能するようには思われません。
さて、あなたは、DBに挿入され、ユーザに接続イメージプレイがある絶対に確信していますか? '$ r = Roleplay ::( 'user_id'、Auth :: user() - > id) - > first()'の結果はどうですか? – devk
そのコードは、そのレコードのデータとともに、行全体を返します。ここに投稿するにはあまりにも多くのコンテンツが必要です.https://gist.github.com/Seriosk/0ccec7a3930ed72077b7e39cfa706df4 –
そうです良い。あなたの関係で何かをしなければなりません。 – devk