Laravel不接受函数中的参数

cld4siwp  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(108)

我正在用API和 AJAX 制作一个简单的聊天应用程序;问题是,当我发出 AJAX 请求并在我的数据库中存储聊天对话和消息时,如果对话存在,只需保存消息。但是当我保存消息时,请求不需要ID,但是当我保存聊天时需要它。

Laravel

public function storeMsj(Request $req)
{
    $existChat = $this->existsChat($req->id);
    if ($existChat == 0) {
        Chat::create([
            'user' => $req->id,//here take the request
            'read' => 0,
        ]);

        Message::create([
            'message_content' => $req->msj,
            'from' => $req->id,//here not take the request
            'to' => 1,
        ]);
    } else {
        Message::create([
            'message_content' => $req->msj,
            'from' => $req->id,
            'to' => 1,
        ]);
    }

    return Response::json($req->id);//the response show correctly the request
}

字符串

JS

function storeMsj(){
    let msj = document.querySelector('.msg').value;
    let id = idUser.firstElementChild.innerHTML;

    fetch('/api/storeMsj',{
        method: 'POST',
        headers:{
            'Accept': 'application/json, text/plain, */*',
            'Content-type': 'aplication/json'
        },
        body: JSON.stringify({
            msj: msj,
            id: id
        }),
    })
    .then(res => res.json())
    .catch(error => console.error('Error:', error))
    .then(response => console.log('Success:', response)); 
}

n3h0vuf2

n3h0vuf21#

在Laravel Mass Assignment中,您需要在模型上指定一个可填充或保护的属性,因为所有Eloquent模型默认情况下都防止mass赋值。

class Flight extends Model
    {
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['name'];
   }

字符串

相关问题