MakeLike https://melikeke.sakura.ne.jp/malike/intro
Verwenden Sie Pythons Mecab, um "ähnliche Sätze" aus verschiedenen Lehrerdaten zu generieren ・ Aus Kategorie generiert ・ Aus Datei generiert ・ Wird aus direkter Eingabe generiert Lehrerdaten können aus den drei Mustern von angegeben werden.
・ Aus Kategorie generiert ・ Aus Datei generiert ・ Wird aus direkter Eingabe generiert
Mitgliedsregistrierung Einloggen Benachrichtigung über die Registrierung von Mitgliedern Passwort zurücksetzen
Sakura Server
Laravel
Machen Sie den Layout-Teil in Laravels Blade-Vorlage allgemein http://cly7796.net/wp/php/to-a-common-layout-in-blade-template-of-laravel/
So implementieren Sie eine Schnellanmeldefunktion in Laravel https://php-junkie.net/framework/laravel/login/
Wenn "Befehl" make: auth "nicht definiert ist." Erscheint https://qiita.com/daisu_yamazaki/items/a914a16ca1640334d7a5
[Benutzerauthentifizierung mit Laravel7_8] Authentifizierung per E-Mail beim Ändern der E-Mail-Adresse https://qiita.com/crosawassant/items/018b29ab770c0a373bc9
Lassen Sie uns das Verhalten von Laravels Standardauthentifizierung (Auth) untersuchen. https://qiita.com/zaburo/items/9fcf0f4c771e011a4d35
E-Mail-Benachrichtigungen und Slack-Benachrichtigungen können mit einer der folgenden Methoden gesendet werden.
Laravel Wenn Sie dies lesen, können Sie Laravel-Ereignisse und Listener festlegen https://reffect.co.jp/laravel/laravel-event-listener#i-8
Google Analytics Erhalten Sie Benachrichtigungen von Google Analytics https://www.ad-market.jp/column/2020/04/20200420.html
Richten Sie die Mail-Funktion von Laravel so ein, dass E-Mails zum Zurücksetzen des Passworts gesendet werden.
"MailTrap" während der lokalen Entwicklung In der Produktionsumgebung haben wir das SMTP von "Sakura Server" eingerichtet und die Kommunikation bestätigt.
E-Mail-Übertragungstest mit Laravel Mail Trap Memorandum https://qiita.com/ryomaDsakamoto/items/e9d3a2c258dbfc66c524
Stellen Sie das SMTP des Sakura-Servers auf dem SMTP-Server von Laravel ein https://laraweb.net/tutorial/1265/
Versuchen Sie es mit der ausgeklügelten Mail-Sendefunktion "Laravel" https://liginc.co.jp/369690
Laravel5.7: Senden Sie eine E-Mail zum Zurücksetzen des japanischen Passworts https://qiita.com/sutara79/items/0ea48847f5565aacceea
Wenn Sie Japanisch mit Laravel einstellen, Die Einstellungen können durch Schreiben in ja.json übernommen werden.
/resources/lang/ja.json
{
"Click link below and reset password.": "Bitte greifen Sie auf die unten stehende URL zu und setzen Sie Ihr Passwort zurück.",
"If you did not request a password reset, no further action is required.": "Wenn Sie diese E-Mail nicht kennen, löschen Sie sie einfach.",
}
blade.php
<p>
{{ __('Click link below and reset password.') }}<br>
{{ __('If you did not request a password reset, no further action is required.') }}
</p>
Aktuelle Anzeige
Das Pulldown-Menü für Kategorien ändert die Auswahl von "Kategorie 2" in Verbindung mit "Kategorie 1".
・ Wenn Kategorie 1 "Texte" ist
・ Wenn Kategorie 1 "Roman" ist
category1.id = category2.parent_id
categori1
categori2
So erstellen Sie ein Eltern-Kind-Auswahlfeld wie Kategorie / Unterkategorie in laravel5.1 https://www.messiahworks.com/archives/12202
Legen Sie den Pfad der Lehrerdaten fest, die von Storage gelesen werden sollen, basierend auf dem in der Kategorie angegebenen Wert.
contoloer.php
$input = $request->input();
$category1 = Arr::get($input, 'category1');
$category2 = Arr::get($input, 'category2');
$path = 'public/constText/';
$path .= $category1 . '/';
$path .= $category2 . '.txt';
Struktur von constText
Verwenden Sie die Speicherfunktion von Laravel, um den Upload-Prozess zu implementieren. Dieses Mal beschränken wir uns nur auf Textdaten. Stellen Sie die Erweiterung daher wie folgt ein. ·TXT ・ Csv ・ Xls ・ Xlsx
Referenz Detaillierte Erklärung zum Hochladen von Dateien mit Laravel https://reffect.co.jp/laravel/how_to_upload_file_in_laravel
Ich habe versucht, die Funktionsweise von Dateien und Verzeichnissen mithilfe von Storage in Laravel zusammenzufassen https://qiita.com/t1k2a/items/50081988363cf2fa1bca
"Aus Datei generieren" wird im obigen Ablauf ausgeführt. "Aus direkter Eingabe generieren" wird auch unter Verwendung der Speicherfunktion ausgeführt.
Generationsfluss aus direkter Eingabe Speichern Sie den Wert von textarea als Textdatei im Speicher Unten die gleiche Verarbeitung wie "Aus Datei generieren"
Python Das von MeCab automatisch generierte Teil wird im folgenden Artikel zusammengefasst.
Referenz Automatisch generierte Catch-Kopie [Python] https://qiita.com/SyogoSuganoya/items/ba542f686104811e2d6b
In einem Auslöseereignis wie der in Laravel implementierten Eingabetaste Ermöglicht die Implementierung von Python.
Verwenden Sie die Exec-Funktion von PHP, um Python auszuführen.
Referenz Verknüpfung von PHP und Python von Grund auf auf Laravel https://qiita.com/SwitchBlade/items/96ed4ea425ef2d758f71
PHP - Zusammenfassung der Beziehung zwischen exec () - Fehlerbehandlung und Standardfehlerausgabe https://qiita.com/smd8122/items/65b552f1d53bfb7fad9a
Ajax
Erstellen eines dynamischen Anzeigebildschirms für Kommentare mit Laravel und Ajax https://www.merges.co.jp/archives/1980
Verwenden Sie Ajax (jQuery) mit Laravel https://pointsandlines.jp/server-side/php/laravel-ajax
Ajax-Verarbeitung durch Übergabe von Werten mit Laravel und Ajax. https://niwacan.com/1619-laravel-ajax/
Ajax wird verwendet, um den Bereich "generierter Text" nach Drücken der Schaltfläche "Generieren" anzuzeigen. Zeigen Sie "\ $ Ausgaben" der PHP-Exec-Funktion im generierten Text an. $ output enthält die gedruckte Zeichenfolge, während Python ausgeführt wird
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,
//Wird ausgeführt, bis die Anforderung abgeschlossen ist
beforeSend: function(){
$('h3').text('Wird geladen');
$("input").attr("disabled","true");
$('.wrapper .button').addClass('pushed');
$('.heart-check').prop('checked', false); //Entfernen Sie alle markierten Elemente
}
};
$.ajax(
params
).done(function( data ) {
//Initialisierung des generierten Textes
$('input.sentence').val('');
//Eingabe der generierten Sätze
for(var i = 0; i < data.outputs.length && i < 5; i++){
$('input.sentence').eq(i).val(data.outputs[i]);
}
}
Lieblingsregistrierung von generierten Sätzen und Verwalten Sie Ihre Lieblingstexte auf "Meine Seite"
Die Lieblingsfunktion verwendet Ajax und verarbeitet es asynchron.
controller.php
//Anzeige des Listenbildschirms
public function index(Request $request) {
$posts = Favorite_sentence::where('user_id', $request->user()->id) //$Holen Sie sich Beiträge von Benutzer
->orderBy('created_at', 'desc') //Ordnen Sie die Beiträge in chronologischer Reihenfolge
->paginate(10); //Seitennummerierung;
return view('user.mypage', [
'posts' => $posts, // $Übergeben Sie den vom Benutzer geschriebenen Artikel zur Ansicht
]);
}
//Klicken Sie auf das Herzsymbol(Registrieren oder löschen)
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) {
//Erstellen Sie einen neuen Datensatz in der Likes-Tabelle, wenn dieser leer ist (noch nicht "Gefällt mir").
$like = new Favorite_sentence;
$like->user_id = $user_id;
$like->sentence = $sentence;
$like->save();
$post_id = $like->id;
$command = 'insert';
} else {
//Bestätigung der Existenz von Lieblingsphrasen
Favorite_sentence::findOrFail($post_id);
//Löschen Sie Datensätze in der Likes-Tabelle
$like = Favorite_sentence::where('id', $post_id)
->delete();
$command = 'delete';
}
$data = [
'user_id' => $user_id,
'post_id' => $post_id,
'sentence' => $sentence,
'command' => $command,
];
//Geben Sie den Argumentwert mit der folgenden Beschreibung an ajax zurück
return response()->json($data);
}
likeSentence.js
var like = $('.heart-label');
var likePostId;
var sentence;
like.on('click', function () {
var $this = $(this);
//Lieblingssatz ID
likePostId = $this.parent().parent().find(".sentence").attr('data-postid');
//Lieblingssätze
sentence = $this.parent().parent().find(".sentence").val();
//Lieblingstext ist leer
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);
}
});
Verwenden Sie "Sakura Server" in der Produktionsumgebung
Gibt das Ergebnis der morphologischen Analyse mit Mecab an einen WEB-Browser aus, der mit Sakura Server / UTF-8 kompatibel ist https://qiita.com/Jshirius/items/ac3ca66a2d5262b98b58
Installieren Sie mecab auf dem gemeinsam genutzten Sakura-Server und rufen Sie es von Python aus auf https://qiita.com/Jshirius/items/3a067486e2a693544c32
Eine Geschichte, bei der ich Schwierigkeiten hatte, Python mit der Exec-Funktion von PHP auf dem X-Server aufzurufen https://hazukei.com/1259/
Wenn das nicht funktioniert, vergleichen Sie "Site-Pakete" zwischen Terminal und PHP.
import site
site.USER_SITE
Fügen Sie Unterschiede hinzu, um installierte Pakete ausführbar zu machen
import sys
sys.path.append('vendor\Lib\site-packages')
Referenz Installieren Sie das Python-Modul auf dem Sakura-Mietserver https://emptypage.jp/notes/sakura-python.html
Ein aktiver Techniker erklärt, wie das Installationsziel des Python-Moduls überprüft und festgelegt wird [für Anfänger] https://techacademy.jp/magazine/46510
Laravel SSH in Sakuras Mietserver und installiere Laravel https://www.failibere.com/development_memo/lalavel/0001
Erstellen Sie eine symbolische Verknüpfung zum Speicher auf dem Sakura-Server https://blog.hiroyuki90.com/articles/laravelで作成したwebアプリをレンタルサーバに公開する/
Recommended Posts