Tengo 2 matrices que he creado a partir de 2 consultas SQL.
Quiero convertirlos en una matriz con nombre, y luego completar una combinación de matriz, la razón de esto es que tienen información diferente y se nombran de manera diferente, verá que hay 2, variables de matriz $ AddonDomainSelect y $ PackageSelect.
Al hacer un DD en $ cpanelAcounts o $ AddonDomains, solo obtengo 1 de los resultados en lugar de los muchos que deberían estar en la matriz.
Se ha intentado fusionar esto en la misma matriz. pero en mi opinión hay errores cuando se pasa allí.
Controlador
<?php
namespace App\Http\Controllers\Manage;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Gufy;
use App\Package;
use App\AddonDomain;
use App\User;
class WebsiteManage extends Controller
{
public function index(){
$userid = auth()->user()->client_id;
$AddonDomainSelect = AddonDomain::select('username', 'domain', 'server', 'addon_domain', 'doc_root')
->where('client_id', '=', $userid)
->get();
$AddonDomains = [];
foreach ($AddonDomainSelect as $AddonDomain) {
$AddonDomains = [
'username' => $AddonDomain['username'],
'server' => $AddonDomain['server'],
'domain' => $AddonDomain['addon_domain'],
'doc_root' => $AddonDomain['doc_root']
];
}
$PackageSelect = Package::select('username', 'domain', 'serverhostname')
->where('client_id', '=', $userid)
->get();
$cpanelAcounts = [];
foreach ($PackageSelect as $cpanelAccount) {
$cpanelAcounts = [ 'username' => $cpanelAccount['username'],
'server' => $cpanelAccount['serverhostname'],
'domain' => $cpanelAccount['domain'],
'doc_root' => '/'];
}
$AllWebsites = array_merge($AddonDomains, $cpanelAcounts);
return view('manageweb.AllWebsites',[
'websites' => $AllWebsites,
]);
}
}
Ver
`@extends('layouts.standardHeader')
@section('content')
<section id="auto-layout-columns">
<div class="app-content content">
<div class="content-wrapper">
<div class="content-header row" >
<div class="content-header-left col-12 mb-2 mt-1">
<div class="row breadcrumbs-top">
<div class="col-12">
<div class="breadcrumb-wrapper col-12">
<ol class="breadcrumb p-0 mb-0">
<li class="breadcrumb-item"><a href="index.html"><i class="bx bx-home-alt"></i></a>
</li>
<li class="breadcrumb-item"><a href="#">Dashboard</a>
</li>
<li class="breadcrumb-item active">Manage Websites
</li>
</ol>
</div>
</div>
</div>
</div>
</div>
<div class="row" id="basic-table">
<div class="col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">Manage Websites</h4>
</div>
<div class="card-content">
<div class="card-body">
<p class="card-text">
</p>
<div class="col-md-6 ">
<div class="input-group">
<input type="text" class="form-control" onkeyup="myFunction()" id="myInput" placeholder="Search Domain Name" aria-describedby="button-addon2">
<div class="input-group-append" id="button-addon2">
</div>
</div>
<td class="text-center py-1">
</div>
<br>
<!-- Table with outer spacing -->
<divn id="myTable"class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Domain</th>
<th>cPanel user</th>
<th>Server Hostname</th>
<th>Document Root </th>
<th></th>
</tr>
</thead>
<tbody>
@foreach ($websites as $website)
<tr>
<td class="text-bold-500">{{$website->domain}}</td>
<td>{{$website->username}}</td>
<td class="text-bold-500">{{$website->serverhostname}}</td>
<td>/</td>
<td> <a href="#" class="btn btn-info shadow mr-1 mb-1">Manage</a></td></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function myFunction() {
var input, filter, table, tr, td, i, txtValue;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
</script>
</div>
</div>
</section>
@endsection`
Obtuve el siguiente error.
Intentando obtener la propiedad 'dominio' de un no objeto (Ver: /var/www/cp/resources/views/manageweb/AllWebsites.blade.php)
Resaltando "{{$ sitio web-> dominio}}" en los registros de errores.
Gracias por mirar, espero que puedas detectar lo que estoy haciendo mal.
El problema que tiene, junto con la forma ya mencionada de usar los valores de la matriz, en lugar de las propiedades del objeto, está en sus dos matrices, que está fusionando
foreach ($PackageSelect as $cpanelAccount) {
$cpanelAcounts = [ 'username' => $cpanelAccount['username'],
'server' => $cpanelAccount['serverhostname'],
'domain' => $cpanelAccount['domain'],
'doc_root' => '/'];
}
esto producirá al final, que $ cpanelAcounts es solo una matriz plana con claves: 'nombre de usuario', 'servidor', 'dominio' y 'doc_root', por lo que cuando profundiza en él con "foreach", está iterando los valores de estas claves: ninguno de ellos tiene un subarreglo con clave 'dominio' y ese es el error.Creo que desea que sea un conjunto de arreglos, por lo que debe ser
$cpanelAcounts[] = [ 'username' => $cpanelAccount['username'],
'server' => $cpanelAccount['serverhostname'],
'domain' => $cpanelAccount['domain'],
'doc_root' => '/'];
o use array_push ()
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras