Php 选择从用户标识到用户标识的消息
我试图让真正简单的功能用户能够只向管理员发送消息,管理员回答这条消息 到目前为止,我已经用以下列制作了表Php 选择从用户标识到用户标识的消息,php,laravel,laravel-5,Php,Laravel,Laravel 5,我试图让真正简单的功能用户能够只向管理员发送消息,管理员回答这条消息 到目前为止,我已经用以下列制作了表message id | from_id | to_id | subject | message 在控制器中,我有这个选项,它应该选择发送给当前登录用户的所有消息(不确定是否正确) 现在,我正在尝试创建viewMessage函数 在索引刀片中,这是指向单个消息的链接 {!! link_to('test/view/' . $message->from_id, $message->
message
id | from_id | to_id | subject | message
在控制器中,我有这个选项,它应该选择发送给当前登录用户的所有消息(不确定是否正确)
现在,我正在尝试创建viewMessage
函数
在索引刀片中,这是指向单个消息的链接
{!! link_to('test/view/' . $message->from_id, $message->subject) !!}
我的路线
Route::get('test/view/{id}', 'MessageController@messageView')->name('test.view');
和控制器功能
public function messageView($id) {
$user = User::where('id', $id)->first();
$messages = $user->messages()->orderBy('created_at', 'asc')->get();
return View::make('test.view', compact('messages'));
}
当我点击按钮时,我得到了这个错误
SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“message.user_id”(SQL:select*frommessage
wheremessage
user_id
=4和message
用户id在asc创建时不是空顺序)
在用户模型中,我为消息添加了如下关系:
public function messages() {
return $this->hasMany('App\Message');
}
和在消息模型中
public function user(){
return $this->belongsTo('App\User');
}
我的问题是,在我的按钮上我从用户id发送时,为什么查询中要查找用户id,以及如何修复此问题
查询中为什么要查找用户id
您需要修复错误,例如:
public function messages() {
return $this->hasMany('App\Message', 'from_id', 'id');
}
你得到的错误很简单。。。这意味着在消息表上没有列名user\u id
检查您的表properly@MasivuyeCokile是的,我得到了错误,这意味着我没有从哪里得到这个用户id,因为我没有在任何地方添加它。是的,这就是问题所在。我很强硬,因为我在表格中添加了FK,它将使用它们。。但在第二个艰难时刻,我应该告诉它该看什么。非常感谢。
public function messages() {
return $this->hasMany('App\Message', 'from_id', 'id');
}