小编And*_*tro的帖子

Yii2 - 如何列出文件夹中的文件

嗨,我正在制作一个Yii2 Basic应用程序,并在管理区域中有一个文件上传表单. 文件上传将文件发送到app/web/uploads.我遵循了从samdark上传文件的精彩教程.可以在这里看到:https://github.com/yiisoft/yii2/blob/master/docs/guide/input-file-upload.md

我需要做的是创建一个视图,呈现上传文件夹中每个文件的超链接.

在Yii1.xx中有一个扩展来处理名为Cfile的文件非常方便.我在几个应用程序中使用我现在想做的事情.

使用Cfile我能够编写如下代码:

$ cfileDir = Yii :: app() - > file-> set('pdfs /'); //将pdfs设置为目标文件夹

$ files = $ cfileDir-> getContents();

getContents()方法很棒,因为它让我以后应用foreach循环并列出文件夹中的所有文件.

在Yii2中如何在uploads文件夹中执行类似的操作,即该文件夹中的文件列表并在视图中创建超链接.

为了创建视图内的超链接,我可以使用Html :: a(),但要获取其中的所有文件,我不知道该怎么做.

有任何想法吗 ??谢谢.

编辑

解决了ALI的精彩提示.

这是完整的代码块

<?php
    $files=\yii\helpers\FileHelper::findFiles('uploads/');
    if (isset($files[0])) {
        foreach ($files as $index => $file) {
            $nameFicheiro = substr($file, strrpos($file, '/') + 1);
            echo Html::a($nameFicheiro, Url::base().'/uploads/'.$nameFicheiro) . "<br/>" . "<br/>" ; // render do ficheiro no browser
        }
    } else {
        echo "There are no files available …
Run Code Online (Sandbox Code Playgroud)

php file list yii yii2

17
推荐指数
1
解决办法
2万
查看次数

关于从MySQL中的表登录的Yii2循序渐进指南

我开始在Yii2中迈出第一步.到目前为止,我能够编写一个应用程序并将数据库中的表连接到它,就像我在Yii1中学到的那样.

该表contacts和我的创建视图中的表单将数据发送到数据库没有任何问题.

问题是我只能使用内置在Yii2中的静态用户模型中的Admin/Admin或demo/demo登录.

在Yii1.xx中,我设法使用COMPONENTS/useridentity从数据库中的表中验证登录,就像这样(我使用了一个名为utilizador,带有字段的表id,utilizadorpassword):

class UserIdentity extends CUserIdentity
{

    public function authenticate() {
       $conexao=Yii::app()->db;
       $consulta="select utilizador,password from utilizador ";
       $consulta.="where utilizador='".$this->username."' and ";
       $consulta.="password='".$this->password."'";

       $resultado=$conexao->createCommand($consulta)->query();

       $resultado->bindColumn(1,$this->username);
       $resultado->bindColumn(2,$this->password);

       while($resultado->read()!==false){
        $this->errorCode=self::ERROR_NONE;
        return !$this->errorCode;
       }
   }

}
Run Code Online (Sandbox Code Playgroud)

有了Yii2,我已经阅读了很多教程,包括Stack Overflow中的一个,但是没有一个能让我了解从MySQL数据库登录用户名和密码的过程.Yii2没有components/useridentity.php,我不知道从哪里开始,什么是正确的代码,使它能够覆盖开箱即用的静态用户模型.

我也尝试过扩展Yii2用户,阅读PDF指南,但不知道如何从我的控制器中的供应商文件夹中调用路由.做了几次尝试,但都失败了.

有人可以教我如何在Yii2中验证从数据库登录,优先不使用扩展吗?

编辑

我在Stack Overflow Yii Framework 2.0使用用户数据库登录时阅读了本教程

并且还从Yii2用户扩展中研究了PDF,但不知道如何处理以下部分和下一部分的pdf.它讲的是路线,但我不知道如何使用它们:

2.3.1显示用户Route/user/admin/index显示注册用户列表.您将能够看到许多有用的信息,例如注册时间和IP地址,确认和阻止状态等.

我也读过这个: http ://www.yiiframework.com/doc-2.0/yii-web-user.html 但我不认为它有解决问题的步骤.

编辑2

我尝试在Yii基本模板中实现User Model和LoginForm Model来验证用户登录.创建了一个数据库并与之相关联.数据库作为表用户和字段用户名,密码,authKey,acessToken填充值.从ActiveRecord扩展用户模型并实现\ yii\web\IdentityInterface,以使内置的Yii2功能完成其工作.还写了方法public static function tableName(){ return'user '; }

每次我尝试登录时,从LoginForm模型中的validatepassword()抛出 - >用户名或密码不正确.

这是我的代码:LoginForm Model: …

php mysql login yii2

6
推荐指数
1
解决办法
4万
查看次数

从数组中删除元素并仅返回剩余元素

我需要从数组中删除一个元素并只返回剩余的元素。

我试着用splicefilter,但它不能去工作。

随着splice它只返回被删除的元素,我需要的是相反的。

var parse_obj = JSON.parse(document.getElementById('imagens').value);
function rImagem(data){
    data = data - 1;
    document.getElementsByClassName("btn_remover")[data].style.display = 'none';
    parse_obj2 = parse_obj.splice(parse_obj.findIndex(e => e.data,1));
    new_string = JSON.stringify(parse_obj2);
    document.getElementById('imagens').value = new_string;
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays

6
推荐指数
2
解决办法
7422
查看次数

来自另一个 m 文件的 Octave 调用函数

m 文件nraizes(a)从另一个 m 文件调用函数。

clear functions;
clc;
x = input('Insert value for a? ') ;
% call to nraizes()
w = nraizes(x)
clear functions;
Run Code Online (Sandbox Code Playgroud)

带有 nraizes() 函数的 nraizes.m 文件:

printf("\n\n");
printf("nraizes por André Castro - UAB 901396");
printf("\n");
printf("Usar na próxima prompt: nraizes(valor numérico)");
printf("\n");

function n = nraizes(a)

% limpar a memoria de todas as vars e funções
clear functions;

clc;

% intervalo para x
x = 0:.1:25;
% ambas as funções h(x) e g(x)
h = …
Run Code Online (Sandbox Code Playgroud)

function call octave

5
推荐指数
1
解决办法
1万
查看次数

Yii2 - jui datepicker 扩展 - 默认显示当前时间戳

我正在使用 Yii2 扩展 - Jui DatePicker。

有没有办法在文本框中默认显示当前时间戳,这样用户每次填写表单字段时都不需要输入它?

我的观点,以及 Yii2 中的形式:

 <?= $form->field($model, 'data')->widget(DatePicker::className(),


                [
                    'language' => 'en',
                    'inline' => false,
                    'clientOptions' =>[
                    'dateFormat' => 'yyyy-MM-dd',
                    'showAnim'=>'fold',
                    'yearRange' => 'c-25:c+0',
                    'changeMonth'=> true,
                    'changeYear'=> true,
                    'autoSize'=>true,
                    'showOn'=> "button",
                    'buttonText' => 'clique aqui',
                     //'buttonImage'=> "images/calendar.gif",
                    ]])

                ?>
Run Code Online (Sandbox Code Playgroud)

在 Yii1 中我曾经写过这样的代码(在小部件内部),并且默认出现时间戳:

'htmlOptions'=>array('size'=>12, 'value'=>CTimestamp::formatDate('d/m/Y')),
Run Code Online (Sandbox Code Playgroud)

Yii2中是否有等价物?

非常感谢...

php time timestamp date yii2

4
推荐指数
1
解决办法
8044
查看次数

Yii2 - 在视图的index.php中渲染_search.php文件

我在Yii2中有一个名为eventos的视图文件夹.此视图是图库.

_view2.php用于向一般公众显示图像.它运作得很好.

但现在我想在_view2.php中创建一个globalsearch输入文本.

我已经有一个GridView小部件用于显示图像,但我不想使用$ searchmodel框,所以我禁用它们.

我想要的是在_view2.php文件中只使用一个输入字段呈现_search.php文件

我的问题是在_view2.php文件中渲染_search.php.

这是_view2.php的代码:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'showOnEmpty'=>false,
    'summary'=>'',
    'showFooter'=>false,
    'showHeader' => false,
    'bordered' => false,
    'striped' => false,
    'hover' => true,
    //'options' => ['class' => 'grid-view'],
    //'layout' => "{summary}\n{items}\n{pager}",

    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        //'id',
        //'nome',
        'descricao',
        'data',
        // No model -> getImageurl()
        [
            'label' => '',
            'format' => 'raw',
            'value'=> function($data) { return Html::a(Html::img($data->imageurl, ['width'=>'300', 'height' => "170"]), $data->foto); },
        ],
        [
            'label' => '',
            'format' => 'raw', …
Run Code Online (Sandbox Code Playgroud)

php render view yii2

3
推荐指数
1
解决办法
8528
查看次数

HTML5 - 当另一个音频标签开始播放时如何停止音频?

我有这个 JavaScript 函数:

\n
var currentPlayer;\nfunction EvalSound(soundobj) {\n    var thissound = document.getElementById(soundobj);\n    if (currentPlayer && currentPlayer != thissound) {\n        currentPlayer.pause(); \n    }\n    if (thissound.paused) {\n        thissound.play();\n    } else {\n        thissound.pause();\n    }\n    thissound.currentTime = 0;\n    currentPlayer = thissound;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这个 html5 音频播放器在 Yii2 的 Gridview 小部件内循环重复(它创建了许多播放器,每个播放器都有不同的歌曲):

\n
'value'=> function ($data){                      \n    return "<audio controls>\n            <source src='" . $data->ficheiro . "' type='audio/mp3' />\n            </audio>";\n},\n
Run Code Online (Sandbox Code Playgroud)\n

问题是,当我正在播放一个音频标签并单击另一个音频标签的播放按钮时,它不会停止前一个正在播放的音频标签并开始新的音频标签。两个音频标签同时播放。我正在尝试调整 javascript 函数,但它不起作用。

\n

我也尝试过声明var thisound = $('audio');

\n

它也不起作用。

\n

我需要在音频标签中添加 ID 吗?\n我需要将onClick='EvalSound'事件与音频标签关联吗? …

html javascript audio function playback

2
推荐指数
1
解决办法
3141
查看次数

Octave fzero不是有效的初始包围

为什么这个for循环会给出错误:fzero:不是有效的初始包围

码:

a = input('Introduza o valor de a: ');
x = 0:.1:50;
h = @(x) cos(x);
g = @(x) exp(a*x)-1;
f = @(x) h(x) - g(x);

c = zeros(length(x))
for i=1:length(x)
    c(i) = fzero(f,x(i));
end

plot(x, f(x));
hold on
plot(c,f(c),'-xr')
hold off
Run Code Online (Sandbox Code Playgroud)

loops octave

2
推荐指数
1
解决办法
2179
查看次数

标签 统计

php ×4

yii2 ×4

function ×2

javascript ×2

octave ×2

arrays ×1

audio ×1

call ×1

date ×1

file ×1

html ×1

list ×1

login ×1

loops ×1

mysql ×1

playback ×1

render ×1

time ×1

timestamp ×1

view ×1

yii ×1