Laravel Artisan从错误的项目加载

时间:2018-08-16 15:08:20

标签: php laravel laravel-5.5

很抱歉,是否曾经有人问过这个问题,但我似乎找不到答案。我有一个Laravel 5.5应用程序,可让用户创建自己的项目。它的作用是执行一个shell脚本,该脚本执行git clone到新目录

  
      
  • cd到新的git目录
  •   
  • 将.env db详细信息更新到新目录(db_dirname)
  •   
  • 运行作曲家安装
  •   
  • php artisan key:generate
  •   
  • php artisan migration --seed
  •   

我遇到的问题是,当我使用...运行此程序时

function result() {
  var inp2 = document.getElementsByName("inp2");
  var titu = document.getElementsByName("titu");
  var res = document.getElementById("result");
  res.value = "";
  
if (titu[0]) {
  for (var k = 0; k < titu.length; k++) {
    if (titu[k].value.trim() != '') {
      res.value += `<div>
<span>${titu[k].value.trim()}</span>
</div>
<ul>\n`;
      for (var j = 0; j < inp2.length; j++) {
        if (inp2[j].value.trim() != '') {
          res.value += `<li>${inp2[j].value.trim()}</li>\n`;
        }
      }
    }
  }
}else {
  console.log("test")
  res.value += `<ul>\n`;
    for (var l = 0; l < inp2.length; l++) {
      if (inp2[l].value.trim() != '') {
        res.value += `<li>${inp2[l].value.trim()}</li>\n`;
      }
    }
 }
};

// -----------------------------------------
if (document.getElementById("add2")) {
let cont2 = 1;
document.getElementById("add2").onclick = function clone2() {
  let container2 = document.getElementById("output2");  
  let tempLinha2 = document.querySelector('#template2'); 
  let clone2 = document.importNode(tempLinha2.content, true); 
  
  const label2 = clone2.querySelector("label");
  label2.htmlFor = cont2;
  clone2.querySelector("input").className = cont2;
  
  container2.appendChild(clone2);
  cont2++;
};
document.getElementById("del2").onclick = function del2() {
    document.querySelector('#output2 #linha2:last-child').remove();
};
}
// ---------------------------------------
if (document.getElementById("addtit")) {
let cont3 = 1;
document.getElementById("addtit").onclick = function clone3() {
  let container3 = document.getElementById("output2");  
  let tempLinha3 = document.querySelector('#template3');
  let clone3 = document.importNode(tempLinha3.content, true); 
  
  const label3 = clone3.querySelector("label");
  label3.htmlFor = cont3;
  clone3.querySelector("input").className = cont3;
  
  container3.appendChild(clone3);
  cont3++;
  document.getElementById('add2').id = 'add3';
  document.getElementById('del2').id = 'del3';
};
document.getElementById("deltit").onclick = function deltit() {
    document.querySelector('#output2 #alg:last-child').remove();
    document.getElementById('add3').id = 'add2';
    document.getElementById('del3').id = 'del2';
};
}
// -----------------------------------------
if (document.getElementById("add3")) {
let cont4 = 1;
document.getElementById("add3").onclick = function clone4() {
  let container4 = document.getElementById("output3");  
  let tempLinha4 = document.querySelector('#template2');
  let clone4 = document.importNode(tempLinha4.content, true); 
  
  const label4 = clone4.querySelector("label");
  label4.htmlFor = cont4;
  clone4.querySelector("input").className = cont4;
  
  container4.appendChild(clone4);
  cont4++;
};
document.getElementById("del3").onclick = function del4() {
  document.querySelector('#output3 #linha2:last-child').remove();
};
}

它可以按预期运行,但是当从PHP运行此命令时,<div class="container"> <button id="addtit">+ TITLE</button> <button id="deltit">- TITLE</button> <button id="add2">+ DESCRIPTION</button> <button id="del2">- DESCRIPTION</button> <div id="output2"></div> <div class='botoes'> <button onclick="result()" id='done'>DONE</button> </div> <div class="header"><span class="title">RESULT</span> </div> <div class="linha"><textarea id="result"></textarea> </div> </div> <!-- template 2 --> <template id="template2"> <div class="linha" id="linha2"><div class="coluna1"><label for="0">DESCRIPTION:</label></div><div class="coluna2"><input name="inp2" class="0" type="text"/></div> </div> </template> <!-- template 3 --> <template id="template3"> <div id="alg"> <div class="linha"><div class="coluna1"><label for="0">TITLE:</label></div><div class="coluna2"><input name="titu" class="0" type="text"/></div> </div> <div class="linha" id="linha3"><div class="coluna1"><label for="0">DESCRIPTION:</label></div><div class="coluna2"><input name="inp2" class="0" type="text"/></div> </div> <div id="output3"></div> </div> </template>命令针对当前项目而不是针对动态创建的项目运行。

sh project1/public/createproject.sh subdir 

下面是shell脚本供参考。

php artisan

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

似乎您在选择正确的工作目录时遇到困难。

想到了几个想法:

  1. 编辑bash脚本以直接指向您要定位的工匠文件:

    php /home/user/project.../artisan key:generate

  2. 在执行如下脚本之前尝试更改工作目录:

    $ process = new Process('cd new / working / directory && sh ./createproject.sh'。$ this-> url);

  3. 使用chdir