Estoy usando Ajax con dataTable y Laravel para mostrar una consulta en una vista y solo me muestra JSON ? Logre hacerlo con Laravel sin usar Ajax

Pero me gustaría dar solución usando Ajax ya que evitare el parpadeo de la recarga.
Espero exponer bien el problema desde ya gracias.

esta es mi js, blade y html

@extends('adminlte::page')

@section(‘css’)

@stop

@section(‘title’, ‘Estudiantes Presentes’)

@section(‘content_header’)

@stop

@section(‘content’)

#
ESTUDIANTE
HORARIO

            <th>TIEMPO</th>
            <th>MATERIA</th>
            <th>AULA</th>

            <th>TEMA</th>
            <th>TEMA</th>
            <th>TEMA</th>
            <th width="120px">Opciones</th>
        </tr>
    </thead>
    <tbody>
        
    </tbody>
</table>

@stop

@section(‘js’)

<script>
    $(document).ready(function() {
        $('#presentes').dataTable({
            "serverSide": true,
            "ordering":false,
            "responsive":true,
            "paging":   false,
            "info":     false,
            "autoWidth":false,
            "columns": (
                    {data: 'id'},
                    {data: 'nombre'},
                    {data: 'horainicio'},
                    {data:'horafin'},
                    {data:'docente_id'},
                    {data:'materia_id'},
                    {data:'aula_id'},
                    {data:'tema_id'},
                    {data:'foto'},
                    {data: 'btn'},
                ),
            "ajax": "{{ url('clases/presentes/ahorita') }}",
            "columnDefs": (
                { responsivePriority: 1, targets: 0 },  
                { responsivePriority: 2, targets: -1 }
            ),
            "language":{
                    "url":"http://cdn.datatables.net/plug-ins/1.10.22/i18n/Spanish.json"
            },  
        });

    } );
</script>

@stop

esta es mi ruta en web.php

Route::get('clases/presentes/ahorita', 'ClaseController@clasesPresentes')->name('clases.presente');

Tengo esto en mi controlador

public function clasesPresentes(){
    $clases =  Clase::join('programacions', 'clases.programacion_id', '=', 'programacions.id')
                    ->join('inscripciones', 'programacions.inscripcione_id','=', 'inscripciones.id')
                    ->join('estudiantes','inscripciones.estudiante_id','=', 'estudiantes.id')
                    ->join('personas','estudiantes.persona_id','=','personas.id')
                    ->select('clases.id', DB::raw('concat_ws(" ",nombre,apellidop) as nombre'), 'clases.horainicio','clases.horafin','clases.docente_id','clases.materia_id','clases.aula_id','clases.tema_id','personas.foto')->get();                       
    return datatables()->of($clases)
    ->addColumn('btn', 'clase.action_marcar')
    ->rawColumns(('btn', 'foto'))
    ->toJson();
}

esta es una captura de lo que puedo ver después de llamar a la vista.
No hay errores en la consola JS
vista que obtengo

Esto sucede cuando intento mostrar la vista
desde donde llamo a a la vista

existe algùn codigo para permitir descargar archivos de mi web solo si el usuario esta suscrito a mi canal de youtube?

podrian ayudarme

tengo este boton para descargar en mi blog >>> <a href="https://buybliss.blogspot.com/p/downloads-free.html">Descargar</a>

y yo quiero que se habilite, solo cuando se hayan suscrito a mi canal de youtube.

laravel – Como hacer de una relación, solo un valor, Eloquent

Estoy desarrollando un api, en la cual requiero hacer una relación pero como resultado no quiero me devuelva un objeto sino el valor en si mismo, por ejemplo, esto es lo que estoy recibiendo.

    {
        "id": "78",
        "fechaCaptura": "2021-06-01T10:57:39.000000Z",
        "expediente": "asd",
        "persona": {
            "id": 1,
            "fecha_captura": "2021-05-28 15:23:18",
            "nombres": "jose",
            "primerApellido": "ramirez",
            "puesto": {
                "idPuesto": 2,
                "nombre": "Administrador",
                "nivel": "0046",
            },          
            "estatus": 0
        },        
        "causaMotivoHechos": "asd"
    }

Pero quiero como resultado solo el nombre del puesto para el campo puesto, tipo así

    {
        "id": "78",
        "fechaCaptura": "2021-06-01T10:57:39.000000Z",
        "expediente": "asd",
        "personal": {
            "idPersona": 1,
            "fecha_captura": "2021-05-28 15:23:18",
            "nombres": "jose",
            "primerApellido": "ramirez",
            "puesto": "Administrador"
            "estatus": 0
        },        
        "causaMotivoHechos": "asd"
    }

Ahorita cuento con esto para el modelo principal

public function Personal()
{
$sub = $this->belongsTo('AppPersonas', 'idPersona', 'id' )
->with("puesto");
}

y este para llamar a personas

public function puesto()
    {
        $sub = $this->belongsTo('AppPuestos', 'puesto', 'idPuesto');
        return $sub;
    }

NEW: CloudLinux OS Solo

Anyone going to use CloudLinux OS Solo

https://lp.cloudlinux.com/cloudlinux-os-solo… | Read the rest of https://www.webhostingtalk.com/showthread.php?t=1848196&goto=newpost

Cant understand how share difficulty affects my chances in solo mining with a pool

So obviously I am not solo mining bitcoin but I think the underlying principles are the same so you guys could help me out here.

I am solo mining ergo on a solo pool (herominers solo pool)

What I do not understand exactly is what **share **difficulty is (not to be mistaken with ergo network difficulty which I understand)

I mean I hash with 2GH/s on ergo I am able to switch between varying share difficulty (which I have notices goes up to like 80GH difficulty) or choose a constant share difficulty.

What I noticed is that if I set that difficulty to 8GH I get more solo valid shares…

But does this mean that the probability of me finding a block decreases because finding a block needs a higher GH share or something like that ?

Could you explain in detail what share difficulty is and maybe advice me if I should use varying difficulty in my case or a constant (and at which value? ) ?

javascript – Como puedo tener varios videos y controlarlos todos por un solo boton?

estoy creando un slider que funciona con videos, la funcionalidad que tiene este es que no puedes saltar al siguiente video hasta que te termines el que estas viendo, pero, este slider cuenta con botón de play, pause y mute, cada vez que el video cambia, si le doy a play se reproducen todos, quiero hacer que los controles solo apliquen al video que se esta presentando, y también me gustaría que me ayudaran con una función, que es que si no estas viendo el video, o no esta activo en pantalla, este se pause y se devuelva al time 0, tiene solo un botón de navegar, y es el de retroceder, estoy intentando que al retroceder el video que estaba viendo se reiniciara y se comenzara a reproducir el de la pagina anterior, pero igual no me funciona, aquí dejo el código:

$(document).ready(function(){
var imgItems = $('.item').length; // NUMERO DE SLIDES
var imgPos = 1;

var owl = $('.owl-carousel');
// Temporizador
var owlTimer;
owl.owlCarousel({
    loop: false,
    autoplay: false,
    items: 1,
    dots: false,
    animateOut: 'fadeOut',
    nav: true,
    startPosition: 0
    
});

// Aplicar tiempo a cada elemento
function sliderTimeout(index) {
    // Establecer índice actual
    owl.currentIndex = index;
    // Eliminar temporizador actual
    clearTimeout(owlTimer);
    // Obtener elemento actual por índice, jQuery inicia con cero, por eso el -1
    let current = $('.owl-carousel .item').eq(index - 1);
    // Solo si no es el último elemento
    if(index < imgItems) {
        // Definir tiempo por defecto para todos los elementos
        let time = 3000;
        // Aquí puedes analizar el contenido del elemento actual
        // Para elegir audio y duración, cambiando el tiempo de espera
        // Por ejemplo: dar el doble de tiempo para el segundo elemento
        if(index == 1) {
            time = 360000;
            myAudio.play();
                // Reactivar temporizador
            $('.play').on('click', function() {
                // Reanudar reproducción con el índice guardado previamente
                sliderTimeout(owl.currentIndex);
                myAudio.play();
            });
            // Pausar reproducción
            $('.stop').on('click', function() {
                // Solo es necesario cancelar el temporizador
                clearTimeout(owlTimer);
                myAudio.pause();
            });
        }
        if(index == 2) {
            time = 60000;
            // Reactivar temporizador
            $('.play').on('click', function() {
                // Reanudar reproducción con el índice guardado previamente
                sliderTimeout(owl.currentIndex);
                myAudio2.play();
            });
            // Pausar reproducción
            $('.stop').on('click', function() {
                // Solo es necesario cancelar el temporizador
                clearTimeout(owlTimer);
                myAudio2.pause();
            });
        }
        if(index == 3) {
            time = 60000;

        }
        if(index == 4) {
            time = 60000;
        }
        owlTimer = setTimeout(function() {
            owl.trigger('next.owl.carousel');
        }, time);
    } else {
        // Es el último elemento, puede tener tiempo diferente
        setTimeout(function() {
            // Probablemente quieras usar otra función para terminar
            // Tal vez redirigir a otra página
        }, 5000);
    }
}
// Escuchar cambios
owl.on('changed.owl.carousel', function(e) {
    // El índice se obtiene desde el evento
    sliderTimeout(e.item.index);
});


// Iniciar reproducción
sliderTimeout(1);
owl.trigger('refresh.owl.carousel');

//Objeto con referencia a la etiqueta audio     
myAudio = document.getElementById("myAudio");
myAudio2 = document.getElementById("myAudio2");
myAudio3 = document.getElementById("myAudio3");
myAudio4 = document.getElementById("myAudio4");
myAudio5 = document.getElementById("myAudio5");
myAudio6 = document.getElementById("myAudio6");
myAudio7 = document.getElementById("myAudio7");
myAudio8 = document.getElementById("myAudio8");
myAudio9 = document.getElementById("myAudio9");
myAudio10 = document.getElementById("myAudio10");
myAudio11 = document.getElementById("myAudio11");
myAudio12 = document.getElementById("myAudio12");
myAudio13 = document.getElementById("myAudio13");

Como vieron anteriormente, intente que cuando pasara cada slider, también la funcionalidad de los botones también cambiara, pero estos adoptan ambas funcionalidades, las del slider anterior y la del nuevo, me quede sin ideas respecto a eso y me gustaría conocer su punto de vista al respecto.

dnd 5e – How can solo Crusher Swarmkeeper best leverage forced movement?

The Swarmkeeper¹ Ranger’s Gathering Swarm¹ feature applies one of three effects to one attack each round, one of which is forcing the target of the attack to move 15 feet if they fail a Strength save. The Crusher feat allows you to move the target of your bludgeoning-damage attack 5 feet, no save (and no once per turn limitation). Using magic stone² per my previous question, I can make Wisdom-based ranged attacks that deal bludgeoning damage, allowing me to maximize both my accuracy and my save DC. So I can push people around.

What or where am I pushing them? There may be environmental hazards I can leverage, or with a party, perhaps my party can create some. But what about solo, when the environment isn’t inherently hazardous? Ultimately I’m talking about one cantrip, one feat, and three class levels to achieve these features—there’s a lot of room there to potentially add synergy. Is there some synergy I can build into the same character which rewards my ability shove people around? The big concern I have here is actions—if I multiclass to access spells that create hazardous zones, that usually means an action to produce them, and then I can get to shoving.

Good answers will (probably) point options in one or more of these flavors:

  • Ways to generate hazardous zones that are especially action-efficient. Things you can create as a bonus action (or no action?), or things that are permanent (or long-duration) and portable, perhaps. For example, if forced movement provoked attacks of opportunity (it doesn’t), then a companion that can take opportunity attacks would be a great solution, since I could push enemies past the companion and trigger those attacks.

    That approach might still be viable for this, if I can force their movement away from me and then they have to move on their own turn back towards me and trigger opportunity attacks. But it seems in that case that most are probably just going to eliminate my companion. Maybe there’s a situation, though, where the “companion” is not really attack-able—a spell effect, perhaps.

  • Ways to turn very-common environmental features into hazards. For example, D&D 3.5e had a Dungeoncrasher³ Fighter, which could deal very high damage by shoving people into walls. Walls are common enough environmental features to feel comfortable relying on them.

  • Ways to directly punish movement—effects that deal more damage the more you move, perhaps. Again, obviously, strong preference for those that are compatible with forced movement, though if I force them away and then they have to walk to me maybe that’s enough.

Any Wizards of the Coast-published material is acceptable, with the exception of Unearthed Arcana material that has since been superseded by later Unearthed Arcana material or official publication. Please note the sources of any material used. I am specifically seeking D&D 5e expertise here—I want to see judgment and analysis of how effective a proposal is, what its potential pros and cons are. One big part of this is going to be comparing the build against other builds that can do similar things—for example, if suggesting a build that relies on opportunity attacks being provoked as the target moves back towards me, that should be compared against other builds that use, for example, dissonant whispers so that the target provokes coming and going. Likewise, do Swarmkeeper,¹ Crusher,¹ magic stone,² and extra attacks even make sense when I could just go with eldritch blast and Repelling Blast⁴ and/or Grasp of Hadar²?

  1. Tasha’s Cauldron of Everything
  2. Xanathar’s Guide to Everything
  3. Dungeonscape, a 3.5e supplement
  4. Player’s Handbook

sonar – ¿Cómo puedo analizar solo un tipo de archivo o varios en sonarqube?

Estoy intentando analizar solamente archivos .java y .js omitiendo el análisis de todos los demás archivos , ya que contiene archivos como .pdf o csv etc.. que causan problemas de compilación, pero son al rededor de 50 extensiones de archivos que omitir por lo feo del proyecto.

Se que lo mejor seria depurarlo, pero por motivos de tiempos ¿alguno sabe como pudo analizar solo los .java y .js omitiendo todo lo demás?

y no quiero colocar una por una de las extensiones.

-Dsonar.exclusions=**/*.pdf,**/*.csv,**/*.jpg, etc...

intentos:

-Dsonar.inclusions=**/*.java -Dsonar.sources=. -Dsonar.sourceEncoding=UTF-8 -Dsonar.java.source=1.6 -Dsonar.jacoco.reportPaths=target/jacoco.exec -Dsonar.scm.disabled=true -X

-Dsonar.exclusions=**/*?.java -Dsonar.sources=. -Dsonar.sourceEncoding=UTF-8 -Dsonar.java.source=1.6 -Dsonar.jacoco.reportPaths=target/jacoco.exec -Dsonar.scm.disabled=true -X

Saben alguna manera?

Laravel usando AJAX (JSON) funciona pero solo me muestra el primer resultado

básicamente lo dicho en el título, el código funciona pero solo me lanza el primer resultado, habiendo más resultados en la BBDD. Esto es el código del controlador:

function action(Request $request) {
    if($request->ajax()) {
        $query = $request->get('query');
        if($query != '') {
            
            //       o tambien     $data = casas::where('ciudad', 'like', '%'.$query.'%')
            $data = DB::table('casas')
                    ->where('ciudad', 'like', '%'.$query.'%')
                    ->orWhere('precio', 'like', '%'.$query.'%')
                    ->orderBy('id', 'desc')
                    ->get();
        } else {
            $data = DB::table('casas')
                    ->orderBy('id', 'desc')
                    ->get();
        }
        $total_row = $data->count();
        if($total_row > 0) {
            foreach($data as $row){
                $casas = '<tr>' . '<td>'.$row->ciudad.'</td>' . '<td>'.$row->precio.'</td>' . '</tr>';
            }
        } else {
            $casas = '<tr> <td align="center" colspan="5">No se encontraron datos</td></tr>';
        }
        $data = array(
            'table_data' => $casas,
            'total_row' => $total_row
        );
        echo json_encode($data);
    }
}

Y esto es el script que uso en la vista:

<script>
$(document).ready(function(){
    fetch_customer_data();
    function fetch_customer_data(query = '') {
      $.ajax({
          url:" {{ route('busca_search.action') }}",
          method:'GET',
          data:{query:query},
          dataType:'json',
          success:function(data)
          {
              $('tbody').html(data.table_data);
              $('#total_records').text(data.total_row);
          }
      })  
    }
    $(document).on('keyup', '#search', function() {
        var query = $(this).val();
        fetch_customer_data(query);
    });
});
</script>

El resultado de este código en pantalla es el siguiente:

introducir la descripción de la imagen aquí

Como podéis ver cuenta bien, es decir en la BBDD habría 3 casas de Almeria, pero solo me muestra el primer resultado, no me muestra las 3 que es lo que yo quisiera.

Agradecería mucho si me pudierais ayudar puesto que he probado ya varias cosas sin resultado óptimo.

javascript – ¿Por que me solo me funciona la primera vez el console.log?

Estoy tratando de saber si estoy llegando a un archivo, lo extraño es lo siguiente:

La primera vez que creo el archivo, pongo la ruta, guardo y ejecuto la página me aparece el console.log con el mensaje, ahí todo bien. Luego cambio el mensaje para confirmar la llegada, guardo y ejecuto y me sigue apareciendo el mensaje anterior.

¿A alguien más le a pasado?
¿A que se deberá?