Je passe des données de mon contrôleur à JavaScript. Ceci est le faire dans la lame p> <script type="text/javascript">
var data = {!! $events !!}
console.log(data) //the result is in the screenshot
</script>
4 Réponses :
Vous devez décoder votre JSON dans le contrôleur
public function index() { $events = json_decode(Eventcalendar::get()->pluck('event')); return view('eventcalendar.index',compact('events')); }
Conversion de chaîne d'erreur Array
Si vous avez le contrôle sur le code du bilan, c'est-à-dire Vous envoyez une demande à votre backend, vous pouvez ajouter Si vous devez gérer cela dans JavaScript, vous pouvez utiliser Vous pouvez utiliser quelque chose comme ça; Initialisez un nouveau tableau json_unescaped_slashes code> en tant que deuxième paramètre de
json_encode code> pour arrêter de s'échapper des caractères, il devrait donc sembler Liek ceci:
json_encode ($ res, json_unescaped_slashes) code>.
json.parse (chaîne) code> et itérer chaque entrée de votre tableau. p>
NEWDATA code> et appuyez sur les données analysées: P>
var newData = []
data.forEach(element => {
newData.push(JSON.parse(element))
})
Selon Documentation Laravel
Rendu JSON STORT > p> Parfois, vous pouvez passer un tableau à votre vue avec l'intention de
Rendre comme JSON afin d'initialiser une variable JavaScript. Pour
Exemple: p>
blockQuote> Cependant, au lieu d'appeler manuellement JSON_ENCODE, vous pouvez utiliser le
@json Lame directive. La directive @json accepte les mêmes arguments
Comme la fonction JSON_ENCODE DE PHP: P>
blockQuote>
résolu en ajoutant
protected $casts = [ 'event' => 'array' ];
Essayez
json_decode ($ événements) code> dans votre fonction de contrôleur avant la code> déclaration code>
Changer simplement
{!! $ événements !!} code> à
@json ($ events) code>