我使用Yii2和socket.io发送通知。我有一个client.js文件,它应该向服务器发出新连接用户的id。 我的client.js中负责此操作的代码是:
socket.emit('AddId', '<?php $model->id ?>');//of course it does not work but I need smth like this.
那么如何将Yii2模型属性传递给socket.io client.js?
Client.js代码:
$( document ).ready(function() {
var socket = io.connect('http://localhost:8890');
socket.emit('AddId', '<?php $model->id ?>');
});
答案 0 :(得分:0)
如果您想发送有关用户的信息,可以这样做
$( document ).ready(function() {
var socket = io.connect('http://localhost:8890');
socket.emit('AddId', '<?php echo Yii::$app->user->id ?>');
});
答案 1 :(得分:0)
在我的index.php视图中的Yii2中,我写道:
$test = 'My text';//here could be any text data, model attributes etc
<script>
var test = "<?php echo $test ?>";
</script>
在此更新之后,我能够在notification.js中使用变量(var test)。 notification.js也被添加到AppAsset.php中,如下所示:
public $js = [
'js/notification.js'
];
notification.js文件:
$( document ).ready(function() {
var socket = io.connect('http://localhost:8890');
socket.emit('AddId', test);//test is a variable (var test) from index.php file
});