【发布时间】:2019-09-02 23:03:28
【问题描述】:
我正在开发一个银行应用程序,在我的 Laravel 模型中,我有一个名为 transactions 的表。
在该表中,它有一个名为 to_id 和 from_id 的列,这是发送资金的用户的 ID(from_id)和接收资金的用户 ID(to_id),它链接到我的用户表,
这里是 CreateTransactionsTable 迁移代码
Schema::create('transactions', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('from_id')->unsigned();
$table->foreign('from_id')->references('id')->on('users');
$table->bigInteger('to_id')->unsigned();
$table->foreign('to_id')->references('id')->on('users');
$table->integer('Amount');
$table->enum('TransactionType', ['Credit', 'Debit']);
$table->enum('Status', ['Completed', 'Incomplete']);
$table->timestamps();
});
这里是 CreateUserTable 迁移文件代码
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->string('AccountNumber')->unique();
$table->rememberToken();
});
这是交易模型的代码
class Transactions extends Model{
public function users(){
return $this->belongsTo('App\Users');
}
}
这是用户模型的代码
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable{
use Notifiable;
protected $fillable = [
'name', 'email', 'password', 'Amount',
];
public function transactions(){
return $this->hasMany('App\Transactions');
}
}
这是我的控制器代码
public function Transactions(){
$Trans = Transactions::all();
return view('Admin.TranAdmin')->with(['title'=>'Transaction History ', 'Trans'=>$Trans]);
}
这是我的 TranAdmin.blade.php 代码
<?php $no = 1; ?>
@foreach ($Trans as $Tran)
<tr>
<td>{{ $no++ }}</td>
<td>{{ $Tran->to_id }}</td>
<td>{{ $Tran->from_id->name }}</td>
<td>{{ $Tran->status }}</td>
<td>{{ $Tran->created_at->format('F jS, Y')}}</td>
<td></td>
</tr>
@endforeach
我现在的问题是我无法获得发送$Tran->from_id 并收到$Tran->to_id 钱的人的姓名
收到此错误
试图获取非对象的属性(查看:C:\xampp\htdocs\laravel Projects\bank\iscbank\resources\views\Admin\TranAdmin.blade.php)(查看:C:\xampp\htdocs\ laravel Projects\bank\iscbank\resources\views\Admin\TranAdmin.blade.php)
我在网上查了一下,但我看到要执行 $Tran->User->name 但由于我有两列链接到用户表,我该怎么做
【问题讨论】:
-
您不需要在模型上
get()才能在视图中使用它吗? -
怎么,在不明白
标签: php laravel laravel-5 eloquent