Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我如何使用与Laravel的关系?_Php_Laravel - Fatal编程技术网

Php 我如何使用与Laravel的关系?

Php 我如何使用与Laravel的关系?,php,laravel,Php,Laravel,我的数据库stockcomment表如下 id|user_id|stock_id|comment 1 | 10 | 9034 |RC MONSTER CAR 2 | 1 | 9034 |very cool car id |user_name | 1 | Ufuk ÇAĞLAR | 10 | Mariana Atencio | 我的数据库用户表如下 id|user_id|stock_id|comment 1 | 10 |

我的数据库stockcomment表如下

id|user_id|stock_id|comment
1 |   10  |  9034  |RC MONSTER CAR
2 |   1  |   9034  |very cool car
id |user_name           |
1  |   Ufuk ÇAĞLAR      |
10 |   Mariana Atencio  |
我的数据库用户表如下

id|user_id|stock_id|comment
1 |   10  |  9034  |RC MONSTER CAR
2 |   1  |   9034  |very cool car
id |user_name           |
1  |   Ufuk ÇAĞLAR      |
10 |   Mariana Atencio  |
我怎样才能相互联系呢

如何使用注释访问用户信息

我想做输出:

[{"id":1,"user  _id":1,"stock_id":9034,"comment":RC MONSTER CAR,"user_name":"Ufuk ÇAĞLAR",
 "id":2,"user  _id":10,"stock_id":9034,"comment":VERY COOL CAR,"user_name":"MARIANA ATANCIO",]

StockComment
模型中定义此关系:

public function user()
{
    return $this->belongsTo(User::class);
}
public function stockComments()
{
    return $this->hasMany(StockComment::class);
}
用户
模型中的这种关系:

public function user()
{
    return $this->belongsTo(User::class);
}
public function stockComments()
{
    return $this->hasMany(StockComment::class);
}

假设您有
用户
股票
模型和
用户
股票
股票评论
表,您可以从用户模型中设置关系

public function stock() {
    return $this->belongsTo(Stock::class)->withPivot('comment');
}
然后在你的股票模型中

public function users() {
    return $this->hasMany(User::class)->withPivot('comment');
}
然后你叫他们:

$stock = User::find($id)->stock; //Stock from this user
//or
$users = Stock::find($id)->users; //Users from this stock
编辑:

如何使用注释访问用户信息

使用
查询生成器

$data = DB::table('stockcomment')->where('stock_id', 9034)->get();
或者,如果您有
StockComment
模型以及与
Stock
的关系,您可以执行以下操作:

$data = StockComment::where('stock_id', 9034)->get();
$data
将是:

[
   {
      "id":1,"user_id":1,"stock_id":9034,"comment":RC MONSTER CAR,"user_name":"Ufuk ÇAĞLAR"
   },
   {
       "id":2,"user_id":10,"stock_id":9034,"comment":VERY COOL CAR,"user_name":"MARIANA ATANCIO"
   }
]

在用户模型上,需要创建hasMany关系

public function stockcomments()
{
    return $this->hasMany(StockComment::class);
}
创建后,您将能够通过执行以下操作获取注释

$user->stockcomments;

这将返回一个集合,该集合将允许您迭代您可以定义
User
模型和
StockComment

现在在用户模型中

public function stockComments(){
   return  $this->hasMany(StockComment::class);

}
现在,您可以使用
$User->stockComments

这里有一个例子

$user = User::find($id);
$user->stockComments;

希望这对您有所帮助

您可以使用连接来实现所需的结果,这是您的更新代码

$result = User::join('stockcomment', 'users.id', '=', 'stockcomment.user_id')
->select('users.id', 'stockcomment.stock_id', 'stockcomment.comment',stockcomment.username)
->get();

例如,stock_id=9034。获取评论和用户信息?@ufuk您必须创建另一个关系无法使用Laravel关系完成吗?İ这有可能吗?是的,你可以在拉维尔找到详细信息