MakeLike https://melikeke.sakura.ne.jp/malike/intro
Utilisez Mecab de Python pour générer des «phrases similaires» à partir de diverses données d'enseignants ・ Généré à partir de la catégorie ・ Généré à partir d'un fichier ・ Généré à partir d'une entrée directe Les données de l'enseignant peuvent être spécifiées à partir des trois modèles de.
・ Généré à partir de la catégorie ・ Généré à partir d'un fichier ・ Généré à partir d'une entrée directe
Inscription des membres S'identifier Notification d'inscription des membres réinitialiser le mot de passe
Serveur Sakura
Laravel
Rendre la partie de mise en page commune dans le modèle de lame de Laravel http://cly7796.net/wp/php/to-a-common-layout-in-blade-template-of-laravel/
Comment implémenter une fonction de connexion rapide dans Laravel https://php-junkie.net/framework/laravel/login/
Lorsque "Commande" make: auth "n'est pas défini." Apparaît https://qiita.com/daisu_yamazaki/items/a914a16ca1640334d7a5
[Authentification de l'utilisateur avec Laravel7_8] Authentifiez-vous par e-mail lors du changement d'adresse e-mail https://qiita.com/crosawassant/items/018b29ab770c0a373bc9
Examinons le comportement de l'authentification standard de Laravel (Auth) https://qiita.com/zaburo/items/9fcf0f4c771e011a4d35
Les notifications par e-mail et les notifications Slack peuvent être envoyées à l'aide de l'une des méthodes suivantes.
Laravel Si vous lisez ceci, vous pouvez définir des événements et des écouteurs Laravel https://reffect.co.jp/laravel/laravel-event-listener#i-8
Google Analytics Recevez des alertes de Google Analytics https://www.ad-market.jp/column/2020/04/20200420.html
Configurez la fonction de messagerie de Laravel pour envoyer un e-mail de réinitialisation de mot de passe.
"MailTrap" pendant le développement local Dans l'environnement de production, nous avons mis en place le SMTP de «Sakura Server» et confirmé la communication.
Test de transmission d'e-mails avec Laravel Mail Trap Memorandum https://qiita.com/ryomaDsakamoto/items/e9d3a2c258dbfc66c524
Définissez le SMTP du serveur Sakura dans le serveur SMTP de Laravel https://laraweb.net/tutorial/1265/
Essayez d'utiliser la fonction sophistiquée d'envoi de courrier électronique «Laravel» https://liginc.co.jp/369690
Laravel5.7: Envoyer un e-mail de réinitialisation de mot de passe japonais https://qiita.com/sutara79/items/0ea48847f5565aacceea
Lors de la configuration du japonais avec Laravel, Les paramètres peuvent être appliqués en écrivant dans ja.json.
/resources/lang/ja.json
{
"Click link below and reset password.": "Veuillez accéder à l'URL ci-dessous et réinitialiser votre mot de passe.",
"If you did not request a password reset, no further action is required.": "Si vous ne connaissez pas cet e-mail, supprimez-le simplement.",
}
blade.php
<p>
{{ __('Click link below and reset password.') }}<br>
{{ __('If you did not request a password reset, no further action is required.') }}
</p>
Affichage réel
Le menu déroulant des catégories fait les choix de changement de "Catégorie 2" en association avec "Catégorie 1".
・ Lorsque la catégorie 1 est "paroles"
・ Lorsque la catégorie 1 est "roman"
category1.id = category2.parent_id
categori1
categori2
Comment créer une boîte de sélection parent-enfant comme une catégorie / sous-catégorie dans laravel https://www.messiahworks.com/archives/12202
Définissez le chemin des données de l'enseignant à lire par Storage en fonction de la valeur spécifiée dans la catégorie.
contoloer.php
$input = $request->input();
$category1 = Arr::get($input, 'category1');
$category2 = Arr::get($input, 'category2');
$path = 'public/constText/';
$path .= $category1 . '/';
$path .= $category2 . '.txt';
Structure de constText
Utilisez la fonction de stockage de Laravel pour implémenter le processus de téléchargement. Cette fois, nous allons le limiter aux données texte uniquement, définissez l'extension comme suit. ·SMS ・ Csv ・ Xls ・ Xlsx
référence Explication détaillée sur la façon de télécharger des fichiers avec Laravel https://reffect.co.jp/laravel/how_to_upload_file_in_laravel
J'ai essayé de résumer le fonctionnement des fichiers et des répertoires en utilisant Storage in Laravel https://qiita.com/t1k2a/items/50081988363cf2fa1bca
"Générer à partir du fichier" est exécuté dans le flux ci-dessus, "Générer à partir d'une entrée directe" est également exécuté en utilisant la fonction de stockage.
Flux de production à partir de l'entrée directe Enregistrer la valeur de textarea sous forme de fichier texte dans le stockage Ci-dessous, le même traitement que "générer à partir d'un fichier"
Python La pièce générée automatiquement par MeCab est résumée dans l'article suivant.
référence Copie de capture générée automatiquement [Python] https://qiita.com/SyogoSuganoya/items/ba542f686104811e2d6b
Lors d'un événement de déclenchement tel que le bouton d'entrée implémenté dans Laravel Vous permet d'implémenter Python.
Utilisez la fonction exec de PHP pour exécuter Python.
référence Lier PHP et Python à partir de zéro sur Laravel https://qiita.com/SwitchBlade/items/96ed4ea425ef2d758f71
PHP --Résumé de la relation entre la gestion des erreurs exec () et la sortie d'erreur standard https://qiita.com/smd8122/items/65b552f1d53bfb7fad9a
Ajax
Création d'un écran de visualisation de commentaires dynamique à l'aide de Laravel et Ajax https://www.merges.co.jp/archives/1980
Utiliser Ajax (jQuery) avec Laravel https://pointsandlines.jp/server-side/php/laravel-ajax
Traitement Ajax en passant des valeurs avec Laravel et Ajax. https://niwacan.com/1619-laravel-ajax/
Ajax est utilisé pour afficher la zone "texte généré" après avoir appuyé sur le bouton générer. Afficher les "\ $ sorties" de la fonction exec de PHP dans le texte généré. $ sorties contient la chaîne imprimée pendant l'exécution de Python
controller.php
exec($command , $outputs, $return_var);
$data = [
'outputs' => $outputs,
'return_var' => $return_var,
];
return response()->json($data);
pythonCall.js
var params = {
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: url,
method: 'post',
dataType: 'json',
data: paramData,
//S'exécute jusqu'à ce que la demande soit terminée
beforeSend: function(){
$('h3').text('Chargement');
$("input").attr("disabled","true");
$('.wrapper .button').addClass('pushed');
$('.heart-check').prop('checked', false); //Supprimer tous les éléments cochés
}
};
$.ajax(
params
).done(function( data ) {
//Initialisation du texte généré
$('input.sentence').val('');
//Saisie des phrases générées
for(var i = 0; i < data.outputs.length && i < 5; i++){
$('input.sentence').eq(i).val(data.outputs[i]);
}
}
Enregistrement préféré des phrases générées et Gérez vos textes préférés sur Ma page
La fonction favorite utilise Ajax et la traite de manière asynchrone.
controller.php
//Affichage de l'écran de liste
public function index(Request $request) {
$posts = Favorite_sentence::where('user_id', $request->user()->id) //$Obtenir des articles par utilisateur
->orderBy('created_at', 'desc') //Organiser les articles par ordre chronologique
->paginate(10); //Pagination;
return view('user.mypage', [
'posts' => $posts, // $Passer l'article rédigé par l'utilisateur pour l'afficher
]);
}
//Cliquez sur le symbole du cœur(S'inscrire ou supprimer)
public function ajaxlike(Request $request) {
// $user_id = $request->user()->id;
$user_id = Auth::user()->id;
$post_id = $request->post_id;
$sentence = $request->sentence;
$like = new Favorite_sentence;
$exist = Favorite_sentence::where('id', $post_id)->get();
$isExist = $exist->isEmpty();
if ($isExist) {
//Créer un nouvel enregistrement dans le tableau des likes s'il est vide (pas encore "aimé")
$like = new Favorite_sentence;
$like->user_id = $user_id;
$like->sentence = $sentence;
$like->save();
$post_id = $like->id;
$command = 'insert';
} else {
//Confirmation de l'existence de phrases préférées
Favorite_sentence::findOrFail($post_id);
//Supprimer les enregistrements dans la table des likes
$like = Favorite_sentence::where('id', $post_id)
->delete();
$command = 'delete';
}
$data = [
'user_id' => $user_id,
'post_id' => $post_id,
'sentence' => $sentence,
'command' => $command,
];
//Renvoie la valeur de l'argument à ajax avec la description suivante
return response()->json($data);
}
likeSentence.js
var like = $('.heart-label');
var likePostId;
var sentence;
like.on('click', function () {
var $this = $(this);
//ID de la phrase préférée
likePostId = $this.parent().parent().find(".sentence").attr('data-postid');
//Phrases préférées
sentence = $this.parent().parent().find(".sentence").val();
//Le texte favori est vide
if (!sentence) {
return;
}
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: '/ajaxlike',
type: 'POST',
data: {
'post_id': likePostId ,
'sentence': sentence ,
},
}).done(function (data) {
if(data.command = 'insert') {
$this.parent().parent().find(".sentence").attr('data-postid', data.post_id);
}
});
Utiliser "Sakura Server" dans un environnement de production
Envoie le résultat de l'analyse morphologique avec Mecab vers un navigateur WEB compatible avec le serveur Sakura / UTF-8 https://qiita.com/Jshirius/items/ac3ca66a2d5262b98b58
Installez mecab sur le serveur partagé Sakura et appelez-le depuis python https://qiita.com/Jshirius/items/3a067486e2a693544c32
Une histoire que j'ai eu du mal à appeler python avec la fonction exec de php sur le serveur X https://hazukei.com/1259/
Si cela ne fonctionne pas, comparez les "packages de site" entre le terminal et PHP.
import site
site.USER_SITE
Ajouter des diffs pour rendre les packages installés exécutables
import sys
sys.path.append('vendor\Lib\site-packages')
référence Installer le module Python sur le serveur de location Sakura https://emptypage.jp/notes/sakura-python.html
Un ingénieur actif explique comment vérifier et définir la destination d'installation du module Python [pour les débutants] https://techacademy.jp/magazine/46510
Laravel [0001] SSH dans le serveur de location de Sakura et installer Laravel https://www.failibere.com/development_memo/lalavel/0001
Créer un lien symbolique vers le stockage sur le serveur Sakura https://blog.hiroyuki90.com/articles/laravelで作成したwebアプリをレンタルサーバに公開する/