Yii2链接和表单动作总是回到';localhost';(错误的基本url)


Yii2 link and form action always back to 'localhost' (wrong base url)

在将操作系统升级到el capitan后,我在yii2上出现错误。我的项目根是localhost/~robbyprawira/myproject/

我创建了一个链接,例如<a href="/home">link</a>。当我在浏览器上单击该链接时,它将转到localhost/home。应该是localhost/~robbyprawira/myproject/home

它碰巧也形成了行动。<form action="/admin/update"></form>。当我点击提交按钮时,它将转到localhost/admin/update。应为localhost/~robbyprawira/myproject/admin/update

有人能帮我解决这个问题吗?谢谢

<?php 
   use yii'bootstrap'ActiveForm;
   use yii'helpers'Html;
   use yii'helpers'Url; 
 ?> 
 <?php 
      $form = ActiveForm::begin(['action' => Url::to('/admin/update')]); 
   ?>
   <?= $form->field($model, 'admin_email', ['inputOptions' => ['title' => Yii::t('myproject/update','Email')]]) ?> 
   <?= Html::submitButton(Yii::t('myproject/update', 'Update'), ['class' => 'btn btn-lg btn-primary btn-block']) ?> 
  <?php ActiveForm::end(); ?>

Yii2在不使用直接代码的情况下为您提供了许多组件,因此您可以

对于链接,正确的方法是使用URL助手

use yii'helpers'Url;
    <a href="<?= Url::to('LINK')?>">

对于ancor标签,您可以使用html Helper

  use yii'helpers'Html;
<?= Html::a('Home', ['home'], ) ?>

对于该表单,您可以使用活动的form

$form = ActiveForm::begin([
  'id' => 'login-form',
  'options' => ['class' => 'form-horizontal'],
  'action' => Url::to(['/admin/update']),
 ]) ?>
......
<?php ActiveForm::end() ?>

请尝试使用以下函数制作URL:

对于文件顶部的两个:

use yii'helpers'Url;
  1. 后端:

    Url::to(Yii::getAlias('@web') . '/admin/update', true);

  2. 前端

    Url::to(Yii::getAlias('@web') . '/home', true);

它对你有用吗?